<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head><script type="text/javascript" async="" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pr.js"></script><script charset="utf-8" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/b.js"></script><script type="text/javascript" async="" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/yswarv.js"></script>
    <meta http-equiv="Cache-Control" content="no-siteapp">
<meta name="shenma-site-verification" content="5a59773ab8077d4a62bf469ab966a63b_1497598848">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="referrer" content="always">
<link href="http://csdnimg.cn//public/favicon.ico" rel="shortcut icon">
<link href="http://blog.csdn.net/ygl_smile/article/details/58137421" rel="canonical">
<link href="http://blog.csdn.net/ygl_smile/rss/list" id="RSSLink" title="RSS" type="application/rss+xml" rel="alternate">
<script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/hm.js"></script><script type="text/javascript" charset="utf-8" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/apiaccept.js"></script><script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/jquery-1.js" type="text/javascript"></script>
<script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ds.js" type="text/javascript"></script>
<script type="text/javascript">
    var CFG={
        BASE_URL : "https://csdnimg.cn/release/phoenix/",    //当前页面对应的虚拟路径,静态资源对应目录同<base href="">
        API_URL  : "//blog.csdn.net/",                 //当前项目默认的后端API地址
        ROOT_URL  : "//blog.csdn.net/",          //当前项目根路径, JS跳转
        STATIC_URL : "https://csdnimg.cn/release/phoenix/",          //本项目静态资源根目录
        STATIC_GLOBAL_URL : "//csdnimg.cn/",    //公共静态资源根目录
        CUR_URL : "//blog.csdn.net/ygl_smile/article/details/58137421",
        SO_URL : "http://so.csdn.net/so/search/s.do"  // 站内搜索路径
    }
</script>
    <title>Scrapy 1.3.2 - 基础教程 - CSDN博客</title>
    <meta name="keywords" content="scrapy,爬虫">
    <meta name="description" content="Scrapy 教程我们将要爬取quotes.toscrape.com，这个网站有名人警句的列表。 
本教程将会带你做一下步骤：
创建一个新的Scrapy项目
编写爬虫爬取网站并提取数据
使用命令行导出爬取到的数据
更改爬虫让其跟随链接
使用爬虫参数
创建项目在开始爬取之前，你需要创建一个Scrapy项目，进入你存放代码的目录，并且运行它。
  scrapy startproject tutorial">
    <link href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/csdn_public_blog_detail.css" type="text/css" rel="stylesheet">
    <link href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/blog_detail-5fa1e5c9d8.css" type="text/css" rel="stylesheet">
    <link href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/iconfont.css" type="text/css" rel="stylesheet">
    <link href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/style.css" type="text/css" rel="stylesheet">
    <script>
        var username = "ygl_smile";
        var _blogger = username;
        var blog_address = "//blog.csdn.net/ygl_smile";
        var static_host = "https://csdnimg.cn/release/phoenix/";
        var currentUserName = "";
        var islock = false;
        var fileName = "58137421";
        var commentscount = 0;
        var curUserFace = "//avatar.csdn.net/D/4/1/3_.jpg";

        document.domain = "csdn.net";
        var title="Scrapy 1.3.2 - 基础教程";
        window.quickReplyflag = true;
        var isBole = false;
        var fasrc="//my.csdn.net//my/favoriteminiadd?dt=Scrapy 1.3.2 - 基础教程&u=//blog.csdn.net/ygl_smile/article/details/58137421";
        var baiduKey = "scrapy1.3.0%E4%B8%AD%E6%96%87%E6%95%99%E7%A8%8B";
        var needInsertBaidu = false;
    </script>
      <script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/baidu_search-1.js" type="text/javascript"></script>
      <script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/blog_detail-741266e04a.js" type="text/javascript"></script>
    <style type="text/css">
        .embody{
            padding:10px 10px 10px;
            margin:0 -20px;
            border-bottom:solid 1px #ededed;
        }
        .embody_b{
            margin:0 ;
            padding:10px 0;
        }
        .embody .embody_t,.embody .embody_c{
            display: inline-block;
            margin-right:10px;
        }
        .embody_t{
            font-size: 12px;
            color:#999;
        }
        .embody_c{
            font-size: 12px;
        }
        .embody_c img,.embody_c em{
            display: inline-block;
            vertical-align: middle;
        }
        .embody_c img{
            width:30px;
            height:30px;
        }
        .embody_c em{
            margin: 0 20px 0 10px;
            color:#333;
            font-style: normal;
        }
    </style>
<style type="text/css">.MathJax_Hover_Frame {border-radius: .25em; -webkit-border-radius: .25em; -moz-border-radius: .25em; -khtml-border-radius: .25em; box-shadow: 0px 0px 15px #83A; -webkit-box-shadow: 0px 0px 15px #83A; -moz-box-shadow: 0px 0px 15px #83A; -khtml-box-shadow: 0px 0px 15px #83A; border: 1px solid #A6D ! important; display: inline-block; position: absolute}
.MathJax_Menu_Button .MathJax_Hover_Arrow {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 4px; -webkit-border-radius: 4px; -moz-border-radius: 4px; -khtml-border-radius: 4px; font-family: 'Courier New',Courier; font-size: 9px; color: #F0F0F0}
.MathJax_Menu_Button .MathJax_Hover_Arrow span {display: block; background-color: #AAA; border: 1px solid; border-radius: 3px; line-height: 0; padding: 4px}
.MathJax_Hover_Arrow:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_Hover_Arrow:hover span {background-color: #CCC!important}
</style><style type="text/css">#MathJax_About {position: fixed; left: 50%; width: auto; text-align: center; border: 3px outset; padding: 1em 2em; background-color: #DDDDDD; color: black; cursor: default; font-family: message-box; font-size: 120%; font-style: normal; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 15px; -webkit-border-radius: 15px; -moz-border-radius: 15px; -khtml-border-radius: 15px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_About.MathJax_MousePost {outline: none}
.MathJax_Menu {position: absolute; background-color: white; color: black; width: auto; padding: 5px 0px; border: 1px solid #CCCCCC; margin: 0; cursor: default; font: menu; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; z-index: 201; border-radius: 5px; -webkit-border-radius: 5px; -moz-border-radius: 5px; -khtml-border-radius: 5px; box-shadow: 0px 10px 20px #808080; -webkit-box-shadow: 0px 10px 20px #808080; -moz-box-shadow: 0px 10px 20px #808080; -khtml-box-shadow: 0px 10px 20px #808080; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
.MathJax_MenuItem {padding: 1px 2em; background: transparent}
.MathJax_MenuArrow {position: absolute; right: .5em; padding-top: .25em; color: #666666; font-size: .75em}
.MathJax_MenuActive .MathJax_MenuArrow {color: white}
.MathJax_MenuArrow.RTL {left: .5em; right: auto}
.MathJax_MenuCheck {position: absolute; left: .7em}
.MathJax_MenuCheck.RTL {right: .7em; left: auto}
.MathJax_MenuRadioCheck {position: absolute; left: .7em}
.MathJax_MenuRadioCheck.RTL {right: .7em; left: auto}
.MathJax_MenuLabel {padding: 1px 2em 3px 1.33em; font-style: italic}
.MathJax_MenuRule {border-top: 1px solid #DDDDDD; margin: 4px 3px}
.MathJax_MenuDisabled {color: GrayText}
.MathJax_MenuActive {background-color: #606872; color: white}
.MathJax_MenuDisabled:focus, .MathJax_MenuLabel:focus {background-color: #E8E8E8}
.MathJax_ContextMenu:focus {outline: none}
.MathJax_ContextMenu .MathJax_MenuItem:focus {outline: none}
#MathJax_AboutClose {top: .2em; right: .2em}
.MathJax_Menu .MathJax_MenuClose {top: -10px; left: -10px}
.MathJax_MenuClose {position: absolute; cursor: pointer; display: inline-block; border: 2px solid #AAA; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; font-family: 'Courier New',Courier; font-size: 24px; color: #F0F0F0}
.MathJax_MenuClose span {display: block; background-color: #AAA; border: 1.5px solid; border-radius: 18px; -webkit-border-radius: 18px; -moz-border-radius: 18px; -khtml-border-radius: 18px; line-height: 0; padding: 8px 0 6px}
.MathJax_MenuClose:hover {color: white!important; border: 2px solid #CCC!important}
.MathJax_MenuClose:hover span {background-color: #CCC!important}
.MathJax_MenuClose:hover:focus {outline: none}
</style><style type="text/css">.MathJax_Preview .MJXf-math {color: inherit!important}
</style><style type="text/css">.MJX_Assistive_MathML {position: absolute!important; top: 0; left: 0; clip: rect(1px, 1px, 1px, 1px); padding: 1px 0 0 0!important; border: 0!important; height: 1px!important; width: 1px!important; overflow: hidden!important; display: block!important; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none}
.MJX_Assistive_MathML.MJX_Assistive_MathML_Block {width: 100%!important}
</style><style type="text/css">#MathJax_Zoom {position: absolute; background-color: #F0F0F0; overflow: auto; display: block; z-index: 301; padding: .5em; border: 1px solid black; margin: 0; font-weight: normal; font-style: normal; text-align: left; text-indent: 0; text-transform: none; line-height: normal; letter-spacing: normal; word-spacing: normal; word-wrap: normal; white-space: nowrap; float: none; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box; box-shadow: 5px 5px 15px #AAAAAA; -webkit-box-shadow: 5px 5px 15px #AAAAAA; -moz-box-shadow: 5px 5px 15px #AAAAAA; -khtml-box-shadow: 5px 5px 15px #AAAAAA; filter: progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')}
#MathJax_ZoomOverlay {position: absolute; left: 0; top: 0; z-index: 300; display: inline-block; width: 100%; height: 100%; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
#MathJax_ZoomFrame {position: relative; display: inline-block; height: 0; width: 0}
#MathJax_ZoomEventTrap {position: absolute; left: 0; top: 0; z-index: 302; display: inline-block; border: 0; padding: 0; margin: 0; background-color: white; opacity: 0; filter: alpha(opacity=0)}
</style><style type="text/css">.MathJax_Preview {color: #888}
#MathJax_Message {position: fixed; left: 1px; bottom: 2px; background-color: #E6E6E6; border: 1px solid #959595; margin: 0px; padding: 2px 8px; z-index: 102; color: black; font-size: 80%; width: auto; white-space: nowrap}
#MathJax_MSIE_Frame {position: absolute; top: 0; left: 0; width: 0px; z-index: 101; border: 0px; margin: 0px; padding: 0px}
.MathJax_Error {color: #CC0000; font-style: italic}
</style><script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/share.js"></script><script type="text/javascript" charset="utf-8" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/tracking-1.js"></script><script type="text/javascript" charset="utf-8" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/main-1.js"></script><link rel="stylesheet" type="text/css" href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/goTop.css"><style type="text/css">.MJXp-script {font-size: .8em}
.MJXp-right {-webkit-transform-origin: right; -moz-transform-origin: right; -ms-transform-origin: right; -o-transform-origin: right; transform-origin: right}
.MJXp-bold {font-weight: bold}
.MJXp-italic {font-style: italic}
.MJXp-scr {font-family: MathJax_Script,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-frak {font-family: MathJax_Fraktur,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-sf {font-family: MathJax_SansSerif,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-cal {font-family: MathJax_Caligraphic,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-mono {font-family: MathJax_Typewriter,'Times New Roman',Times,STIXGeneral,serif}
.MJXp-largeop {font-size: 150%}
.MJXp-largeop.MJXp-int {vertical-align: -.2em}
.MJXp-math {display: inline-block; line-height: 1.2; text-indent: 0; font-family: 'Times New Roman',Times,STIXGeneral,serif; white-space: nowrap; border-collapse: collapse}
.MJXp-display {display: block; text-align: center; margin: 1em 0}
.MJXp-math span {display: inline-block}
.MJXp-box {display: block!important; text-align: center}
.MJXp-box:after {content: " "}
.MJXp-rule {display: block!important; margin-top: .1em}
.MJXp-char {display: block!important}
.MJXp-mo {margin: 0 .15em}
.MJXp-mfrac {margin: 0 .125em; vertical-align: .25em}
.MJXp-denom {display: inline-table!important; width: 100%}
.MJXp-denom > * {display: table-row!important}
.MJXp-surd {vertical-align: top}
.MJXp-surd > * {display: block!important}
.MJXp-script-box > *  {display: table!important; height: 50%}
.MJXp-script-box > * > * {display: table-cell!important; vertical-align: top}
.MJXp-script-box > *:last-child > * {vertical-align: bottom}
.MJXp-script-box > * > * > * {display: block!important}
.MJXp-mphantom {visibility: hidden}
.MJXp-munderover {display: inline-table!important}
.MJXp-over {display: inline-block!important; text-align: center}
.MJXp-over > * {display: block!important}
.MJXp-munderover > * {display: table-row!important}
.MJXp-mtable {vertical-align: .25em; margin: 0 .125em}
.MJXp-mtable > * {display: inline-table!important; vertical-align: middle}
.MJXp-mtr {display: table-row!important}
.MJXp-mtd {display: table-cell!important; text-align: center; padding: .5em 0 0 .5em}
.MJXp-mtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-mlabeledtr {display: table-row!important}
.MJXp-mlabeledtr > .MJXp-mtd:first-child {padding-left: 0}
.MJXp-mlabeledtr:first-child > .MJXp-mtd {padding-top: 0}
.MJXp-merror {background-color: #FFFF88; color: #CC0000; border: 1px solid #CC0000; padding: 1px 3px; font-style: normal; font-size: 90%}
.MJXp-scale0 {-webkit-transform: scaleX(.0); -moz-transform: scaleX(.0); -ms-transform: scaleX(.0); -o-transform: scaleX(.0); transform: scaleX(.0)}
.MJXp-scale1 {-webkit-transform: scaleX(.1); -moz-transform: scaleX(.1); -ms-transform: scaleX(.1); -o-transform: scaleX(.1); transform: scaleX(.1)}
.MJXp-scale2 {-webkit-transform: scaleX(.2); -moz-transform: scaleX(.2); -ms-transform: scaleX(.2); -o-transform: scaleX(.2); transform: scaleX(.2)}
.MJXp-scale3 {-webkit-transform: scaleX(.3); -moz-transform: scaleX(.3); -ms-transform: scaleX(.3); -o-transform: scaleX(.3); transform: scaleX(.3)}
.MJXp-scale4 {-webkit-transform: scaleX(.4); -moz-transform: scaleX(.4); -ms-transform: scaleX(.4); -o-transform: scaleX(.4); transform: scaleX(.4)}
.MJXp-scale5 {-webkit-transform: scaleX(.5); -moz-transform: scaleX(.5); -ms-transform: scaleX(.5); -o-transform: scaleX(.5); transform: scaleX(.5)}
.MJXp-scale6 {-webkit-transform: scaleX(.6); -moz-transform: scaleX(.6); -ms-transform: scaleX(.6); -o-transform: scaleX(.6); transform: scaleX(.6)}
.MJXp-scale7 {-webkit-transform: scaleX(.7); -moz-transform: scaleX(.7); -ms-transform: scaleX(.7); -o-transform: scaleX(.7); transform: scaleX(.7)}
.MJXp-scale8 {-webkit-transform: scaleX(.8); -moz-transform: scaleX(.8); -ms-transform: scaleX(.8); -o-transform: scaleX(.8); transform: scaleX(.8)}
.MJXp-scale9 {-webkit-transform: scaleX(.9); -moz-transform: scaleX(.9); -ms-transform: scaleX(.9); -o-transform: scaleX(.9); transform: scaleX(.9)}
.MathJax_PHTML .noError {vertical-align: ; font-size: 90%; text-align: left; color: black; padding: 1px 3px; border: 1px solid}
</style><link rel="stylesheet" href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/share_style0_16.css"></head>
<body><div id="BAIDU_DUP_fp_wrapper" style="position: absolute; left: -1px; bottom: -1px; z-index: 0; width: 0px; height: 0px; overflow: hidden; visibility: hidden; display: none;"><iframe id="BAIDU_DUP_fp_iframe" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/o.html" style="width: 0px; height: 0px; visibility: hidden; display: none;"></iframe></div><svg aria-hidden="true" style="position: absolute; width: 0px; height: 0px; overflow: hidden;"><symbol id="icon-read" viewBox="0 0 1024 1024"><path d="M988.16 240.64c0-5.12-2.56-11.52-6.4-15.36-2.56-2.56-51.2-55.04-135.68-81.92-32-10.24-64-15.36-96-15.36-97.28 0-181.76 46.08-235.52 84.48-55.04-39.68-139.52-85.76-236.8-85.76-32 0-65.28 5.12-96 15.36-84.48 26.88-131.84 81.92-134.4 84.48-3.84 3.84-5.12 8.96-5.12 15.36l0 546.56 60.16 71.68c3.84 8.96 12.8 15.36 21.76 15.36 3.84 0 7.68 0 10.24-2.56 19.2-5.12 120.32-29.44 199.68-29.44 37.12 0 64 5.12 79.36 15.36 7.68 5.12 11.52 10.24 12.8 16.64 0 12.8 10.24 23.04 23.04 23.04 1.28 0 8.96 0 21.76 0 24.32 0 61.44 0 98.56-2.56l0 0c1.28 0 3.84 0 5.12 0 10.24 0 20.48-7.68 23.04-17.92 2.56-10.24 7.68-16.64 17.92-23.04 16.64-8.96 42.24-14.08 76.8-14.08 78.08 0 171.52 24.32 198.4 32 3.84 1.28 7.68 2.56 11.52 2.56 0 0 0 0 0 0 8.96 0 17.92-5.12 21.76-14.08l64-72.96L988.16 241.92 988.16 240.64zM88.32 744.96 88.32 250.88c14.08-14.08 52.48-46.08 107.52-64 26.88-8.96 53.76-12.8 81.92-12.8 70.4 0 142.08 26.88 213.76 79.36l0 477.44c-38.4-23.04-88.32-34.56-149.76-34.56-32 0-66.56 3.84-102.4 10.24C179.2 715.52 124.16 733.44 88.32 744.96zM893.44 824.32c-20.48-5.12-61.44-15.36-106.24-23.04-35.84-5.12-66.56-7.68-94.72-7.68-43.52 0-76.8 6.4-101.12 20.48-15.36 8.96-26.88 20.48-33.28 34.56-33.28 1.28-65.28 2.56-87.04 2.56-1.28 0-2.56 0-3.84 0-6.4-12.8-15.36-24.32-29.44-32-23.04-15.36-58.88-21.76-106.24-21.76-76.8 0-165.12 19.2-200.96 28.16l-29.44-35.84c51.2-17.92 148.48-47.36 240.64-47.36 70.4 0 122.88 17.92 153.6 52.48l0 0c2.56 2.56 2.56 2.56 2.56 2.56l1.28 1.28c0 0 1.28 1.28 1.28 1.28 0 0 1.28 1.28 1.28 1.28l1.28 0c0 0 2.56 1.28 2.56 1.28l1.28 0c0 0 1.28 0 1.28 0 0 0 1.28 0 1.28 0l2.56 0c0 0 1.28 0 1.28 0 0 0 2.56 0 2.56 0 0 0 1.28 0 1.28 0 0 0 2.56-1.28 2.56-1.28 0 0 1.28 0 1.28 0 0 0 1.28 0 1.28-1.28 0 0 1.28 0 1.28 0 0 0 1.28 0 1.28-1.28 0 0 1.28 0 1.28 0l2.56-2.56 0 0c30.72-37.12 81.92-56.32 152.32-56.32 39.68 0 122.88 6.4 240.64 49.92L893.44 824.32zM940.8 744.96c-35.84-14.08-90.88-32-152.32-43.52-37.12-6.4-71.68-10.24-103.68-10.24-60.16 0-110.08 12.8-148.48 37.12L536.32 253.44c70.4-51.2 142.08-78.08 212.48-78.08 28.16 0 55.04 3.84 81.92 12.8 56.32 17.92 94.72 49.92 110.08 64L940.8 744.96z"></path></symbol><symbol id="icon-shezhi" viewBox="0 0 1024 1024"><path d="M661.636 917.743h-0.006c-16.273-0.008-32.097-6.733-42.312-18.008-13.921-15.264-58.031-54.955-94.135-54.955-35.857 0-80.65 39.921-93.515 53.902-10.192 11.084-25.904 17.7-42.02 17.7-7.681 0-14.923-1.47-21.54-4.378l-1.16-0.503-109.745-61.374-1.092-0.761c-19.976-13.987-27.58-41.343-17.68-63.634 0.077-0.167 10.123-23.351 10.123-44.49 0-64.146-52.19-116.337-116.335-116.337h-3.89c-0.24 0.009-0.479 0.014-0.704 0.014-18.378 0-33.337-16.323-38.123-41.587-0.379-2.026-9.36-49.938-9.36-87.688 0-37.753 8.978-85.67 9.36-87.695 4.84-25.582 20.125-42.015 38.828-41.575h3.89c64.146 0 116.335-52.19 116.335-116.332 0-21.132-10.041-44.311-10.148-44.544-9.889-22.266-2.235-49.619 17.832-63.56l1.137-0.788 115.82-63.621 1.206-0.512c6.524-2.78 13.665-4.19 21.232-4.19 16.086 0 31.824 6.473 42.114 17.316 13.709 14.35 57.036 51.681 92.108 51.681 34.744 0 77.81-36.59 91.471-50.692 10.233-10.62 25.86-16.983 41.782-16.983 7.72 0 14.996 1.46 21.628 4.34l1.17 0.512 111.866 62.148 1.104 0.774c20.017 13.965 27.639 41.324 17.731 63.625-0.072 0.17-10.124 23.355-10.124 44.493 0 64.143 52.19 116.332 116.334 116.332h3.896c18.673-0.416 33.98 15.99 38.822 41.575 0.38 2.024 9.36 49.936 9.36 87.688 0 37.755-8.98 85.67-9.367 87.694-4.837 25.584-20.144 41.955-38.824 41.573h-3.887c-64.144 0-116.334 52.191-116.334 116.337 0 21.128 10.042 44.304 10.145 44.534 9.882 22.257 2.243 49.614-17.786 63.567l-1.119 0.786L683.967 913l-1.183 0.514c-6.511 2.803-13.621 4.229-21.148 4.229z m-3.455-53.594c0.506 0.332 1.946 0.896 3.455 0.896 0.062 0 0.118 0 0.17-0.004l106.28-58.74c-2.566-5.957-14.295-34.885-14.295-65.05 0-90.232 71.065-164.178 160.167-168.802 1.28-7.082 8.242-46.918 8.242-76.801 0-29.883-6.962-69.7-8.242-76.803-89.1-4.627-160.167-78.573-160.167-168.8 0-30.213 11.765-59.175 14.308-65.09l-104.555-58.089c-0.12-0.005-0.268-0.016-0.439-0.016-1.78 0-3.443 0.65-3.996 1.023-1.758 1.804-16.91 17.173-38.682 32.486-32.226 22.67-62.697 34.167-90.575 34.167-28.142 0-58.86-11.724-91.292-34.84-21.906-15.609-37.132-31.274-38.89-33.111-0.557-0.377-2.245-1.046-4.04-1.046-0.14 0-0.263 0.005-0.372 0.011l-108.299 59.482c2.6 6.033 14.283 34.909 14.283 65.025 0 90.226-71.063 164.172-160.166 168.8-1.28 7.086-8.241 46.916-8.241 76.802 0 29.88 6.96 69.695 8.248 76.795 89.094 4.63 160.16 78.572 160.16 168.801 0 30.278-11.812 59.286-14.328 65.124l102.502 57.316c0.064 0.009 0.143 0.009 0.23 0.009 1.495 0 2.914-0.55 3.423-0.877 1.916-2.055 17.223-18.262 39.277-34.425 32.866-24.09 64.1-36.3 92.836-36.3 29.004 0 60.477 12.443 93.535 36.994 22.18 16.466 37.554 32.973 39.463 35.063zM525.556 649.985c-85.424 0-154.923-69.501-154.923-154.928 0-85.424 69.5-154.924 154.923-154.924 85.428 0 154.932 69.5 154.932 154.924 0 85.427-69.504 154.928-154.932 154.928z m0-257.156c-56.368 0-102.224 45.858-102.224 102.226 0 56.372 45.857 102.231 102.224 102.231 56.373 0 102.238-45.859 102.238-102.23 0-56.369-45.863-102.227-102.238-102.227z" fill=""></path></symbol><symbol id="icon-fanhuidingbu" viewBox="0 0 1024 1024"><path d="M527.072 190.496a21.28 21.28 0 0 0-30.176 0l-155.488 155.488a21.376 21.376 0 0 0 30.176 30.176L512 235.744l140.384 140.384a21.28 21.28 0 0 0 30.208 0 21.376 21.376 0 0 0 0-30.176l-155.52-155.456zM114.336 586.176h91.264V819.2h42.688v-233.024h91.264v-42.656H114.336v42.656z m460.576-42.688h-113.056a53.248 53.248 0 0 0-53.344 53.344v168.992a53.248 53.248 0 0 0 53.344 53.344h113.056a53.248 53.248 0 0 0 53.344-53.344v-168.992a53.248 53.248 0 0 0-53.344-53.344z m10.688 222.368a10.464 10.464 0 0 1-3.136 7.552 10.464 10.464 0 0 1-7.552 3.136h-113.056a10.464 10.464 0 0 1-7.552-3.136 10.464 10.464 0 0 1-3.136-7.552v-168.992c0-2.016 0.544-4.96 3.136-7.552a10.464 10.464 0 0 1 7.552-3.136h113.056c2.016 0 4.96 0.544 7.552 3.136a10.464 10.464 0 0 1 3.136 7.552v168.992z m308.448-206.72a53.248 53.248 0 0 0-37.728-15.616h-146.304V819.2h42.656v-120.928h103.648a53.248 53.248 0 0 0 53.344-53.344v-48.096c0-13.632-5.216-27.296-15.616-37.696z m-27.04 85.792a10.464 10.464 0 0 1-3.136 7.552 10.464 10.464 0 0 1-7.552 3.136h-103.648v-69.408h103.648c2.016 0 4.96 0.544 7.552 3.136a10.464 10.464 0 0 1 3.136 7.552v48.032z" fill=""></path><path d="M942.08 51.2c16.928 0 30.72 13.792 30.72 30.72v860.16c0 16.928-13.792 30.72-30.72 30.72H81.92a30.784 30.784 0 0 1-30.72-30.72V81.92c0-16.928 13.792-30.72 30.72-30.72h860.16m0-51.2H81.92A81.92 81.92 0 0 0 0 81.92v860.16A81.92 81.92 0 0 0 81.92 1024h860.16A81.92 81.92 0 0 0 1024 942.08V81.92A81.92 81.92 0 0 0 942.08 0z" fill=""></path></symbol><symbol id="icon-shoucang" viewBox="0 0 1024 1024"><path d="M865.6 1024c-27.2 0-51.2-11.2-68.8-32L520 704 243.2 992c-17.6 20.8-41.6 32-68.8 32-49.6 0-89.6-41.6-89.6-91.2V150.4C84.8 67.2 150.4 0 232 0h576c81.6 0 147.2 67.2 147.2 150.4v782.4c0 49.6-40 91.2-89.6 91.2zM520 611.2l326.4 339.2c4.8 6.4 12.8 9.6 19.2 9.6 14.4 0 25.6-12.8 25.6-27.2V150.4c0-48-36.8-86.4-83.2-86.4h-576c-46.4 0-83.2 38.4-83.2 86.4v782.4c0 14.4 11.2 27.2 25.6 27.2 8 0 14.4-3.2 19.2-9.6l1.6-1.6 324.8-337.6z" fill=""></path></symbol><symbol id="icon-mulu" viewBox="0 0 1024 1024"><path d="M36.416 201.472h57.44c20.128 0 36.448-18.88 36.448-53.664C130.336 112.992 114.016 96 93.856 96H36.416C16.288 96-0.032 112.992-0.032 147.808c0 34.784 16.288 53.664 36.448 53.664z m262.848 0h678.08c25.792 0 46.656-18.88 46.656-53.664C1023.968 112.992 1003.072 96 977.312 96H299.264c-25.792 0-46.656 16.992-46.656 51.808 0 34.784 20.864 53.664 46.656 53.664z m-203.136 255.296H35.552c-18.912 0-34.208 20.8-34.208 51.552 0 30.816 15.328 54.752 34.208 54.752h60.576c18.912 0 39.328-23.936 39.328-54.752-0.032-30.72-20.416-51.552-39.328-51.552z m881.184 0H299.264c-25.76 0-46.656 20.8-46.656 51.552 0 30.816 20.864 54.752 46.656 54.752h678.08c25.792 0 46.656-23.936 46.656-54.752-0.032-30.72-20.896-51.552-46.688-51.552zM97.248 819.712H38.912c-18.304 0-33.088 20.896-33.088 51.648 0 30.752 14.816 56.64 33.088 56.64h58.336c18.304 0 38.176-25.888 38.176-56.64s-19.872-51.648-38.176-51.648z m880.064 0H299.264c-25.76 0-46.656 20.896-46.656 51.648 0 30.752 20.864 55.168 46.656 55.168h678.08c25.792 0 46.656-24.416 46.656-55.168-0.032-30.752-20.896-51.648-46.688-51.648z" fill=""></path></symbol><symbol id="icon-xinlang" viewBox="0 0 1024 1024"><path d="M429.664 928C217.024 928 0 824.896 0 654.624c0-88.864 56.032-191.424 152.608-288.224C281.664 236.896 432 178.432 488.576 235.168c25.152 24.672 27.424 68.192 11.424 119.744-8 26.336 24.608 11.456 24.608 12.032 104.032-44.16 194.848-46.432 228 1.12 17.792 25.216 16 60.736 0 101.984-7.456 18.944 2.336 21.76 16.544 26.336 58.912 18.304 124.032 62.464 124.032 140.416-0.096 129.024-185.312 291.2-463.52 291.2z m-39.424-465.344c-169.696 17.216-297.632 120.928-286.816 232.672 10.816 111.744 157.088 188.512 326.848 171.936 169.696-17.216 297.632-120.864 286.752-232.672-10.816-111.744-157.088-188.512-326.784-171.936z m-69.728 356.448c-81.728-26.336-116.032-107.104-80.544-179.936 35.424-71.04 126.304-111.2 206.848-90.528 84 21.76 126.304 100.896 91.968 177.664-34.304 77.92-133.664 120.288-218.272 92.8z m45.696-153.024c-25.696-10.912-60 0.544-76 25.76-16.544 25.792-8.544 56.192 17.152 68.224 26.24 12.032 61.664 0.544 78.272-25.792 16.064-26.368 7.456-56.704-19.424-68.192z m65.184-26.944a25.152 25.152 0 0 0-28.608 10.912c-5.728 10.304-2.88 21.216 7.456 25.792a24.32 24.32 0 0 0 29.152-10.848c5.696-10.368 2.24-21.856-8-25.856z m579.36-187.392a38.912 38.912 0 0 1-49.12 25.216 39.904 39.904 0 0 1-25.76-49.28 192.736 192.736 0 0 0-40.032-189.152 192.448 192.448 0 0 0-183.424-59.552 39.68 39.68 0 0 1-46.848-30.4 39.136 39.136 0 0 1 30.272-46.432 270.112 270.112 0 0 1 258.304 83.68 272.192 272.192 0 0 1 56.608 265.92z m-132.544-43.008a33.6 33.6 0 1 1-64.032-20.672 65.024 65.024 0 0 0-13.696-63.584 64.128 64.128 0 0 0-61.12-20.032 33.28 33.28 0 0 1-40.032-25.76 33.6 33.6 0 0 1 25.696-40.128 130.4 130.4 0 0 1 125.664 40.704 132.16 132.16 0 0 1 27.52 129.472z" fill="#707070"></path></symbol><symbol id="icon-sousuo" viewBox="0 0 1024 1024"><path d="M944.513789 1024a77.19975 77.19975 0 0 1-55.325422-23.345409l-210.780262-210.204622A431.538289 431.538289 0 0 1 433.185369 866.658339C194.134776 866.658339 0.52778 673.051343 0.52778 434.00075S194.134776 1.343161 433.185369 1.343161c239.082573 0 432.657589 193.606996 432.657589 432.657589 0 87.273454-26.41549 173.299688-76.17639 245.222735l210.780263 210.812243c14.135166 14.167146 22.737789 34.378513 22.737789 55.293441a79.182511 79.182511 0 0 1-78.670831 78.670831zM433.185369 158.652842c-151.777139 0-275.347908 123.538788-275.347907 275.347908s123.538788 275.347908 275.347907 275.347907 275.347908-123.538788 275.347908-275.347907-123.538788-275.347908-275.347908-275.347908z"></path></symbol><symbol id="icon-QQ" viewBox="0 0 1024 1024"><path d="M149.9071 430.705026c0-15.993503 10.299816-41.679068 19.959892-53.674195-0.607753-14.873957 5.693687-45.133664 17.113047-54.889701 0-105.685065 81.662824-238.814981 177.080062-284.428451 58.85609-27.98863 120.495049-37.680692 185.044825-37.680692 50.283572 0 105.109299 11.995127 151.938275 31.379252 134.217474 56.521038 164.541155 161.694312 193.073564 295.911786l0.511792 2.846843c16.601256 25.141786 31.443226 54.889701 31.443226 85.661201 0 15.38575-10.299816 30.86746-10.299815 44.589885 0 1.119545 3.454597 5.693687 3.966388 6.845219 49.100053 72.578515 93.689938 151.426483 93.689939 241.661825 0 19.959891-10.811608 89.72355-42.862587 89.72355-22.294943 0-46.828976-54.281948-54.889701-69.123919-0.511792-0.543779-1.119545-0.543779-1.727299-0.543779l-2.846843 2.239091c-18.328554 47.372755-38.288445 91.96264-75.457346 127.404242 32.594758 31.379252 85.117421 28.532409 94.809484 82.814356-2.846843 6.30144-1.727298 13.146659-6.30144 19.384126-32.594758 49.100053-119.95127 55.401493-172.505919 55.401493-69.667697 0-126.25271-18.328554-191.954019-37.680693-13.754412-3.966389-34.322057-1.727298-49.164027-3.454596-34.833849 38.288445-119.95127 48.556274-169.051323 48.556274-43.374379 0-211.338144-2.846843-211.338144-77.088683 0-31.987005 6.909193-41.135289 29.140162-61.702933 17.720801-3.454597 30.86746-13.146659 51.435104-14.266204 2.846843 0 5.117921-0.607753 8.028739-1.119546 0.543779-0.511792 1.119545-0.511792 1.119545-2.23909l-1.119545-1.727298c-39.407991-9.148284-94.809484-108.563896-103.382001-149.699185l-2.846844-1.663324c-3.966389 0-5.693687 8.572517-6.845219 11.419361-12.538906 29.140162-42.254834 60.583388-75.361384 63.97401H29.923843c-4.574142 0-2.846843-4.574142-6.30144-5.693687a139.399369 139.399369 0 0 1-13.146659-57.128791c0-114.257583 54.889701-198.799238 143.973511-266.195858a77.152657 77.152657 0 0 1-4.542155-29.811889z" fill="#707070"></path></symbol><symbol id="icon-weixin" viewBox="0 0 1024 1024"><path d="M692.992 347.968c-172 0-308.032 128.192-308.032 285.856 0 26.464 4 51.872 11.488 75.808-11.328 0.992-22.688 1.472-34.048 1.472-45.536 0-81.504-8.96-126.976-17.984l-126.496 63.36 36.032-108.768c-90.56-63.328-144.992-145.184-144.992-244.384C-0.032 231.232 162.976 96 362.432 96c178.048 0 334.56 108.224 365.536 253.952a260.992 260.992 0 0 0-34.976-1.984zM244.416 249.728c-27.008 0-54.528 17.984-54.528 45.44 0 26.912 27.456 44.896 54.528 44.896 27.456 0 45.536-17.984 45.536-44.896 0-27.52-18.016-45.44-45.536-45.44z m652.544 588L924.416 928l-99.52-54.368c-36.448 8.96-72.992 18.432-108.96 18.432-172.512 0-308.032-117.728-308.032-262.432s135.488-262.432 308.032-262.432c162.944 0 308.032 117.728 308.032 262.432 0.064 81.44-53.984 153.792-127.008 208.096zM498.464 249.728c-27.456 0-54.528 17.984-54.528 45.44 0 26.912 27.008 44.896 54.528 44.896 27.008 0 45.024-17.984 45.024-44.896-0.032-27.52-18.048-45.44-45.024-45.44z m117.472 262.304c-18.016 0-35.968 17.984-35.968 35.872 0 18.432 18.016 36.48 35.968 36.48 27.456 0 45.536-17.984 45.536-36.48-0.064-17.888-18.016-35.872-45.536-35.872z m199.584 0c-18.016 0-36.032 17.984-36.032 35.872 0 18.432 18.016 36.48 36.032 36.48 26.976 0 45.536-17.984 45.536-36.48-0.128-17.888-18.528-35.872-45.536-35.872z" fill="#707070"></path></symbol><symbol id="icon-fenxiang" viewBox="0 0 1024 1024"><path d="M753.344 615.456a171.84 171.84 0 0 0-145.024 79.648l-184.544-105.536c11.968-23.36 19.264-49.408 19.264-77.568 0-17.344-3.264-33.696-8.096-49.536l191.968-109.728a171.392 171.392 0 0 0 126.368 55.872c95.072 0 172.288-77.152 172.288-172.288S848.384 64 753.312 64a172.256 172.256 0 0 0-172.288 172.288c0 17.344 3.328 33.76 8.032 49.536l-191.968 109.696a171.328 171.328 0 0 0-126.304-55.84 172.288 172.288 0 1 0-0.064 344.576 171.008 171.008 0 0 0 104.064-35.776l-0.672 1.184 208.768 119.328c-0.8 6.112-1.856 12.192-1.856 18.752a172.32 172.32 0 0 0 344.576 0 172.224 172.224 0 0 0-172.256-172.288z m0-482.592a103.52 103.52 0 0 1 103.456 103.392 103.456 103.456 0 0 1-206.912 0 103.456 103.456 0 0 1 103.456-103.392zM270.752 615.456A103.328 103.328 0 0 1 167.424 512a103.36 103.36 0 1 1 206.72 0 103.36 103.36 0 0 1-103.392 103.456z m482.592 275.744a103.456 103.456 0 1 1 0-206.912 103.456 103.456 0 0 1 0 206.912z" fill=""></path></symbol><symbol id="icon-erweima" viewBox="0 0 1024 1024"><path d="M466.112 464.896H1.216V0h464.896v464.896z m0 557.888H1.216V557.888h464.896v464.896zM373.12 371.936V92.992H94.176v278.944h278.944z m0 557.152V650.88H94.176v278.24h278.944zM280.16 278.944H187.168V185.952h92.992v92.992z m0 557.888H187.168v-92.992h92.992v92.992zM1024 464.896H559.104V0H1024v464.896z m0 371.936h-278.944v-92.992h-92.992v278.944h-92.992V557.888h278.944v92.992h92.992v-92.992H1024v278.944z m-92.992-464.896V92.992h-278.944v278.944h278.944z m-92.96-92.992h-92.992V185.952h92.992v92.992z m0 743.84h-92.992v-92.992h92.992v92.992z m185.952 0h-92.992v-92.992H1024v92.992z"></path></symbol><symbol id="icon-daima" viewBox="0 0 1024 1024"><path d="M376.192 683.104a10.592 10.592 0 0 1-15.264 0l-154.656-154.656a10.624 10.624 0 0 1 0-15.264l154.656-154.656c2.016-2.048 4.768-3.232 7.648-3.232s5.632 1.152 7.616 3.232l16.608 16.608a10.624 10.624 0 0 1 0 15.264L262.4 520.832l130.432 130.432a10.752 10.752 0 0 1 3.232 7.648c0 2.88-1.152 5.632-3.232 7.616l-16.64 16.576z m88.96 57.728a10.56 10.56 0 0 1-12.928 7.296l-20.576-5.632a10.752 10.752 0 0 1-7.296-13.28L548.16 300.832a10.56 10.56 0 0 1 12.928-7.328l20.576 5.632c5.632 1.664 8.96 7.648 7.296 13.28l-123.808 428.416z m187.2-57.728a10.624 10.624 0 0 1-15.296 0l-16.576-16.576a10.592 10.592 0 0 1 0-15.264l130.4-130.432L620.48 390.4a10.624 10.624 0 0 1 0-15.264l16.576-16.608a10.624 10.624 0 0 1 15.296 0l154.624 154.656a10.624 10.624 0 0 1 0 15.264l-154.624 154.656z" fill="#707070"></path></symbol><symbol id="icon-pinglun" viewBox="0 0 1025 1024"><path d="M256 364.512c-35.328 0-64 29.76-64 66.496 0 36.736 28.672 66.496 64 66.496 35.36 0 64-29.76 64-66.496 0-36.736-28.64-66.496-64-66.496z m256.032 0c-35.36 0-64 29.76-64 66.496 0 36.736 28.64 66.496 64 66.496 35.328 0 63.968-29.76 63.968-66.496 0-36.736-28.64-66.496-63.968-66.496z m255.968 0c-35.328 0-64 29.76-64 66.496 0 36.736 28.672 66.496 64 66.496s64-29.76 64-66.496c0.032-36.736-28.672-66.496-64-66.496zM896.032 32h-768C57.312 32 0 91.552 0 165.024v498.752c0 73.44 58.56 141.12 130.88 141.12h195.104c33.952 36.288 174.72 182.208 174.72 182.208a15.488 15.488 0 0 0 22.592 0s103.072-116.992 170.176-182.208h199.616c72.32 0 130.88-67.712 130.88-141.12V165.024C1024 91.552 966.688 32 896.032 32zM960 663.776c0 36.704-30.752 75.264-66.88 75.264h-196.32c-23.808 0-45.184 24.48-45.184 24.48l-137.824 143.232-137.824-143.232s-26.208-24.48-48.704-24.48H130.88C94.752 739.008 64 700.48 64 663.776V165.024c0-36.736 28.64-66.496 64-66.496h768c35.328 0 63.968 29.76 63.968 66.496v498.752z m0 0" fill=""></path></symbol><symbol id="icon-xihuan-" viewBox="0 0 1024 1024"><path d="M1020.81017 296c-14.4-85.6-61.6-152.8-141.6-200-45.6-27.2-97.6-41.6-148.8-41.6-66.4 0-128.8 24-176.8 68-15.2 13.6-28 28.8-41.6 43.2-40.8-49.6-81.6-80-129.6-96-84-28-168-17.6-245.6 32C45.61017 158.4-0.78983 240.8 0.01017 345.6c0.8 61.6 20.8 120 62.4 178.4 44.8 62.4 100 126.4 172.8 200.8 49.6 50.4 100.8 100 149.6 148l48 47.2c4 4 8.8 8 12.8 12.8l5.6 4.8c10.4 8.8 32 23.2 60 23.2 23.2 0 45.6-9.6 65.6-28.8 84-79.2 173.6-164.8 258.4-256.8 44-48 94.4-104 136-166.4 44.8-68 61.6-140 49.6-212.8m-92 184c-39.2 59.2-85.6 111.2-130.4 160-84 91.2-172.8 176-256 254.4-10.4 9.6-20.8 14.4-30.4 14.4-12 0-21.6-7.2-25.6-9.6l-4-4c-4-4-8-8-12.8-12l-48-47.2c-49.6-48-100.8-97.6-149.6-148-72-72.8-124-133.6-168-194.4-35.2-49.6-52.8-98.4-52.8-148.8 0-86.4 36.8-152 113.6-200.8 40.8-25.6 83.2-39.2 126.4-39.2 24.8 0 49.6 4 75.2 12.8 40 13.6 74.4 40 110.4 84.8 2.4 3.2 15.2 16.8 36 16.8 8.8 0 22.4-3.2 34.4-16.8l2.4-2.4c13.6-14.4 25.6-28.8 39.2-41.6 38.4-36 88-54.4 141.6-54.4 42.4 0 84.8 12 123.2 34.4 67.2 40 105.6 93.6 116.8 164 9.6 62.4-4 120-41.6 177.6" fill=""></path><path d="M512.01017 957.6c-27.2 0-48-13.6-58.4-22.4l-5.6-4.8c-4-4-8.8-8-12.8-12.8l-51.2-50.4c-48.8-47.2-98.4-96-147.2-144.8-72.8-74.4-128-137.6-172.8-200.8-40.8-57.6-60.8-115.2-61.6-176-0.8-104 44.8-185.6 136-243.2 48.8-30.4 100-46.4 152.8-46.4 29.6 0 60 4.8 90.4 15.2 48 16 88.8 46.4 128.8 95.2l1.6 2.4 1.6-2.4c12-13.6 26.4-28.8 40.8-43.2 48-43.2 110.4-67.2 176-67.2 51.2 0 102.4 14.4 148 41.6 79.2 47.2 126.4 113.6 140 198.4 12 72.8-4 143.2-48.8 210.4-40.8 62.4-91.2 118.4-135.2 166.4-84.8 92-174.4 177.6-258.4 256.8-20 18.4-41.6 28-64 28z m-220.8-855.2c-43.2 0-86.4 13.6-128 39.2-77.6 49.6-114.4 116-114.4 203.2 0 51.2 17.6 100 53.6 149.6 44 61.6 96 121.6 168 195.2 48 48.8 98.4 97.6 147.2 145.6l50.4 49.6 9.6 9.6 7.2 6.4c4 3.2 14.4 10.4 27.2 10.4 10.4 0 21.6-4.8 32-15.2 83.2-78.4 172-164 256-254.4 44.8-48.8 92-100.8 130.4-160 38.4-57.6 52-116 41.6-177.6-12-71.2-50.4-125.6-118.4-166.4-38.4-22.4-81.6-35.2-124-35.2-54.4 0-104 19.2-143.2 55.2-13.6 12.8-25.6 26.4-39.2 40.8l-2.4 3.2c-12 12.8-24 16-32.8 16-19.2 0-31.2-13.6-33.6-16-36-44.8-71.2-72-112-85.6-25.6-8.8-50.4-13.6-75.2-13.6z" fill=""></path></symbol><symbol id="icon-jubao" viewBox="0 0 1024 1024"><path d="M507.2 345.6c-20.8 0-38.4 17.6-38.4 38.4v264c0 22.4 17.6 38.4 38.4 38.4h8c20.8 0 38.4-17.6 38.4-38.4V384c0-22.4-17.6-38.4-38.4-38.4h-8zM454.4 788.8c0 14.4 6.4 30.4 16 40 11.2 11.2 25.6 16 40 16 14.4 0 30.4-6.4 40-16 11.2-11.2 16-25.6 16-40 0-14.4-6.4-30.4-16-40-11.2-11.2-25.6-16-40-16-14.4 0-30.4 6.4-40 16-9.6 11.2-16 25.6-16 40z" fill=""></path><path d="M102.4 966.4C46.4 966.4 0 921.6 0 864c0-17.6 4.8-33.6 12.8-48 0 0 0-1.6 1.6-1.6L422.4 108.8s0-1.6 1.6-1.6c19.2-30.4 52.8-49.6 88-49.6s68.8 19.2 88 49.6c0 0 0 1.6 1.6 1.6l409.6 705.6s0 1.6 1.6 1.6c8 14.4 12.8 32 12.8 48 0 56-46.4 102.4-102.4 102.4H102.4zM64 841.6c-1.6 0-1.6 0 0 0-4.8 8-6.4 16-6.4 24 0 25.6 20.8 44.8 44.8 46.4h817.6c25.6 0 46.4-20.8 46.4-46.4 0-8-1.6-16-6.4-22.4l-408-704s0-1.6-1.6-1.6C544 123.2 528 113.6 512 113.6s-32 8-40 22.4c0 0 0 1.6-1.6 1.6L64 841.6z" fill=""></path></symbol><symbol id="icon-dashang-" viewBox="0 0 1024 1024"><path d="M977.883349 705.071646c0 307.614317-400.867476 318.928354-459.700467 318.928354-4.684967 0-7.202739-0.063741-7.202739-0.063741s-2.517772 0.063741-7.202739 0.063741c-58.832991 0-459.700467-11.314037-459.700467-318.928354 0-331.963399 372.407096-488.638904 372.407097-488.638904S291.679054 172.355805 291.679054 78.847681c0-75.851852 185.582073-78.847681 215.317273-78.847681h7.967632c29.67146 0 215.317274 3.0277 215.317273 78.847681 0 93.508123-124.83685 137.55319-124.83685 137.55319s372.438967 156.707376 372.438967 488.670775zM582.210769 271.983069a60.235294 60.235294 0 0 1 3.314534-112.311734c16.700156-6.08727 77.317896-35.631248 84.074448-73.844009-17.911236-11.569001-75.979334-25.496421-154.572051-25.49642h-8.031373c-78.656458 0-136.660815 13.92742-154.572051 25.49642 6.820293 38.531466 68.202926 68.266667 84.074448 73.844009a60.235294 60.235294 0 0 1 3.314535 112.311734c-3.250794 1.402303-335.501027 145.967009-335.501027 433.152318 0 246.231684 332.855773 258.693059 399.592654 258.69306l5.577342-0.063741H512.733022l5.513601 0.063741c66.736881 0 399.592655-12.461376 399.592655-258.69306C917.775537 416.484034 585.557174 273.385372 582.210769 271.983069z m36.555493 386.971926a24.890881 24.890881 0 0 1 21.512605 37.256645 24.763399 24.763399 0 0 1-21.512605 12.397635h-84.010706v65.238967a24.85901 24.85901 0 1 1-49.65428 0v-65.238967h-79.96315a24.85901 24.85901 0 1 1 0-49.718021h79.96315v-50.737877h-82.002863a24.890881 24.890881 0 0 1-21.512605-37.256645 24.763399 24.763399 0 0 1 21.512605-12.397635h42.579022l-41.049237-41.112978a24.922751 24.922751 0 0 1 17.528789-42.451541c6.533458 0 12.907563 2.645254 17.52879 7.26648l70.178898 70.306381 70.178898-70.306381a24.85901 24.85901 0 0 1 35.057579 35.185061l-41.049238 41.112978h42.579023a24.85901 24.85901 0 1 1 0 49.718021h-81.939122v50.737877h84.074447z"></path></symbol><symbol id="icon-shouqi" viewBox="0 0 1024 1024"><path d="M906.592 828.768a40.288 40.288 0 0 1-57.152 0L512 491.36 174.592 828.768a40.416 40.416 0 0 1-57.216 0L11.936 723.904a40.96 40.96 0 0 1 0-57.792L483.392 195.232a40.288 40.288 0 0 1 57.152 0l471.52 470.88a40.96 40.96 0 0 1 0 57.792l-105.472 104.864z" fill="#707070"></path></symbol><symbol id="icon-youjiantou" viewBox="0 0 1024 1024"><path d="M704 512a22.56 22.56 0 0 0-6.656-15.136l-307.456-307.488a22.72 22.72 0 0 0-15.136-6.56 22.592 22.592 0 0 0-15.136 6.56L326.592 222.4a22.72 22.72 0 0 0-6.56 15.136c0 5.28 2.624 11.232 6.56 15.136L585.888 512l-259.328 259.328a22.72 22.72 0 0 0-6.56 15.136c0 5.952 2.624 11.232 6.56 15.136l33.024 33.024a22.688 22.688 0 0 0 15.136 6.56 22.592 22.592 0 0 0 15.136-6.56l307.488-307.488A22.432 22.432 0 0 0 704 512z" fill="#707070"></path></symbol><symbol id="icon-zuojiantou" viewBox="0 0 1024 1024"><path d="M320 512c0-5.28 2.688-11.232 6.656-15.136l307.456-307.488a22.72 22.72 0 0 1 15.136-6.56c5.28 0 11.232 2.624 15.136 6.56l33.024 33.024a22.72 22.72 0 0 1 6.56 15.136 22.592 22.592 0 0 1-6.56 15.136L438.112 512l259.328 259.328a22.72 22.72 0 0 1 6.56 15.136 21.312 21.312 0 0 1-6.56 15.136l-33.024 33.024a22.688 22.688 0 0 1-15.136 6.56 22.592 22.592 0 0 1-15.136-6.56l-307.488-307.488A22.432 22.432 0 0 1 320 512z" fill="#707070"></path></symbol><symbol id="icon-xiajiantou" viewBox="0 0 1024 1024"><path d="M512 704a22.56 22.56 0 0 0 15.136-6.656l307.488-307.456a22.72 22.72 0 0 0 6.56-15.136 22.592 22.592 0 0 0-6.56-15.136l-33.024-33.024a22.72 22.72 0 0 0-15.136-6.56 22.592 22.592 0 0 0-15.136 6.56L512 585.888l-259.328-259.328A22.72 22.72 0 0 0 237.536 320a21.312 21.312 0 0 0-15.136 6.56l-33.024 33.024a22.688 22.688 0 0 0-6.56 15.136c0 5.28 2.624 11.232 6.56 15.136l307.488 307.488A22.432 22.432 0 0 0 512 704z" fill="#707070"></path></symbol><symbol id="icon-shangjiantou" viewBox="0 0 1024 1024"><path d="M512 320c5.28 0 11.232 2.688 15.136 6.656l307.488 307.456a22.72 22.72 0 0 1 6.56 15.136 22.592 22.592 0 0 1-6.56 15.136l-33.024 33.024a22.72 22.72 0 0 1-15.136 6.56 22.592 22.592 0 0 1-15.136-6.56L512 438.112l-259.328 259.328a22.72 22.72 0 0 1-15.136 6.56 21.312 21.312 0 0 1-15.136-6.56l-33.024-33.024a22.688 22.688 0 0 1-6.56-15.136c0-5.28 2.624-11.232 6.56-15.136l307.488-307.488A22.432 22.432 0 0 1 512 320z" fill="#707070"></path></symbol><symbol id="icon-shanghuadong" viewBox="0 0 1024 1024"><path d="M512 0c282.336 0 512 229.664 512 512s-229.664 512-512 512S0 794.336 0 512 229.664 0 512 0z m0 955.744c244.672 0 443.744-199.072 443.744-443.744S756.672 68.256 512 68.256 68.256 267.328 68.256 512 267.328 955.744 512 955.744z" fill=""></path><path d="M307.2 409.6c8.736 0 17.472 3.36 24.16 9.952L512 600.256l180.64-180.704a34.144 34.144 0 0 1 48.256 48.256l-204.8 204.8a34.144 34.144 0 0 1-48.256 0l-204.8-204.8A34.144 34.144 0 0 1 307.2 409.6z" fill=""></path></symbol><symbol id="icon-xiahuadong" viewBox="0 0 1024 1024"><path d="M512 1024C229.664 1024 0 794.336 0 512S229.664 0 512 0s512 229.664 512 512-229.664 512-512 512z m0-955.744C267.328 68.256 68.256 267.328 68.256 512S267.328 955.744 512 955.744 955.744 756.672 955.744 512 756.672 68.256 512 68.256z" fill=""></path><path d="M716.8 614.4c-8.736 0-17.472-3.36-24.16-9.952L512 423.744l-180.64 180.704a34.144 34.144 0 0 1-48.256-48.256l204.8-204.8a34.144 34.144 0 0 1 48.256 0l204.8 204.8A34.144 34.144 0 0 1 716.8 614.4z" fill=""></path></symbol><symbol id="icon-bokezhuanjia" viewBox="0 0 1024 1024"><path d="M984.544 604.736l38.944-95.168-38.944-92.896V315.904L911.808 243.2l-39.744-94.848-93.248-38.144-71.232-71.264h-102.848L509.568 0l-92.896 38.944H315.904L243.2 111.648 148.352 151.424 110.208 244.672 38.944 315.904v102.816L0 513.888l38.944 92.928v100.768l72.704 72.704 39.776 94.848 93.248 38.144 71.232 71.264h102.848l95.136 38.944 92.928-38.944h100.768l72.704-72.736 94.848-39.744 38.144-93.248 71.264-71.232z" fill="#F0D04D"></path><path d="M685.92 197.888A1280.352 1280.352 0 0 0 228.768 878.176a662.72 662.72 0 0 0 44.96-16.096A1280.544 1280.544 0 0 1 688.032 253.536a649.792 649.792 0 0 0-2.112-55.648z" fill="#B18C25"></path><path d="M569.312 472a448.608 448.608 0 0 0 230.08-68.64 450.24 450.24 0 0 0-28.8-270.016C496.448 223.104 310.848 477.856 305.376 762.464c44.416 5.088 90.304 3.648 136.512-5.216 151.904-29.12 271.264-131.232 328.832-263.04a683.968 683.968 0 0 1-201.408-22.208z" fill="#FFFFFF"></path><path d="M356.512 775.616c-17.408 0-35.008-0.992-52.32-2.976l-9.248-1.056 0.192-9.312A686.4 686.4 0 0 1 767.392 123.648l8.832-2.912 3.712 8.544c13.728 31.552 23.936 64.416 30.336 97.76 11.36 59.36 11.072 119.36-0.864 178.368l-0.864 4.288-3.712 2.336a457.12 457.12 0 0 1-157.824 62.112c-3.296 0.64-6.592 1.216-9.888 1.792 43.872 7.04 88.608 9.76 133.216 8.032l16.288-0.64-6.528 14.944a461.856 461.856 0 0 1-423.584 277.344z m-40.672-22.368a441.632 441.632 0 0 0 438.72-248.384c-3.456 0.064-6.912 0.064-10.368 0.064-59.968 0-119.712-7.744-177.536-23.072l-70.336-18.624 72.736-1.504a436.896 436.896 0 0 0 221.12-64.736c10.592-55.008 10.56-110.88-0.032-166.144a443.392 443.392 0 0 0-25.344-84.8A666.112 666.112 0 0 0 315.84 753.248z" fill="#CFA41E"></path><path d="M375.68 775.616c-17.408 0-35.008-0.992-52.32-2.976l-9.248-1.056 0.192-9.312A686.496 686.496 0 0 1 786.56 123.616l8.832-2.912 3.712 8.544c13.728 31.52 23.936 64.416 30.336 97.76 11.36 59.328 11.072 119.36-0.864 178.368l-0.864 4.288-3.712 2.336a457.12 457.12 0 0 1-157.824 62.112c-3.296 0.64-6.592 1.216-9.888 1.792a682.848 682.848 0 0 0 133.216 8.064l16.288-0.64-6.528 14.944a461.856 461.856 0 0 1-423.584 277.344z m-40.704-22.368a441.632 441.632 0 0 0 438.72-248.384 694.976 694.976 0 0 1-187.872-23.008l-70.336-18.624 72.736-1.504a436.896 436.896 0 0 0 221.12-64.736 437.664 437.664 0 0 0-0.032-166.144 443.392 443.392 0 0 0-25.344-84.8 666.144 666.144 0 0 0-448.992 607.2z" fill="#B18C25"></path><path d="M770.592 133.344a450.24 450.24 0 0 1 28.8 270.016 447.424 447.424 0 0 1-230.08 68.64c30.592 8.096 61.888 14.112 93.696 17.888 35.36 4.224 71.36 5.696 107.712 4.32-57.568 131.776-176.928 233.92-328.832 263.04a450.976 450.976 0 0 1-136.512 5.216c5.472-284.608 191.072-539.36 465.216-629.12" fill="#FFFFFF"></path><path d="M356.512 775.616c-17.408 0-35.008-0.992-52.32-2.976l-9.248-1.056 0.192-9.312A686.4 686.4 0 0 1 767.392 123.648l28-2.912-15.424 8.544c13.728 31.52 23.936 64.416 30.336 97.76 11.36 59.328 11.072 119.36-0.864 178.368l-0.864 4.288-3.712 2.336a457.12 457.12 0 0 1-157.824 62.112c-3.296 0.64-6.592 1.216-9.888 1.792a682.848 682.848 0 0 0 133.216 8.064l16.288-0.64-6.528 14.944a461.856 461.856 0 0 1-423.616 277.312z m-40.672-22.368a441.632 441.632 0 0 0 438.72-248.384 694.976 694.976 0 0 1-187.872-23.008l-70.336-18.624 72.736-1.504a436.896 436.896 0 0 0 221.12-64.736 437.664 437.664 0 0 0-0.032-166.144 443.392 443.392 0 0 0-25.344-84.8A666.08 666.08 0 0 0 315.84 753.248z" fill="#B18C25"></path><path d="M703.648 218.976c-203.68 172.48-361.472 392.832-458.72 653.856l78.624-30.016c75.328-238.688 186.144-416.192 380.64-573.856 0.064-18.432 0.928-31.36-0.544-49.984z" fill="#B18C25"></path><path d="M702.08 192.544A1280.224 1280.224 0 0 0 244.928 872.8a662.72 662.72 0 0 0 44.96-16.096A1280.544 1280.544 0 0 1 704.192 248.16c0.064-18.432-0.64-36.992-2.112-55.616z" fill="#EDEEEE"></path></symbol><symbol id="icon-yonghu" viewBox="0 0 1025 1024"><path d="M1023.664 962.048c-43.952-157.52-162.384-281.104-312.496-340 92.928-61.36 154.128-164.432 154.128-281.056C865.296 152.976 707.008 0 512.4 0 317.776 0 159.408 152.976 159.408 340.992c0 116.656 61.232 219.744 154.272 281.072C164.352 680.752 46.24 803.456 1.808 959.776c-7.36 26 8.48 52.848 35.408 60.016a52.096 52.096 0 0 0 38.448-4.608 49.072 49.072 0 0 0 23.744-29.552c50.848-178.896 220.656-303.808 413.008-303.808 193.312 0 363.344 125.664 413.504 305.616 7.296 26.032 35.04 41.44 62.032 34.464 26.96-7.04 42.944-33.808 35.712-59.856zM260.608 340.992c0-134.208 112.96-243.328 251.808-243.328 138.768 0 251.68 109.136 251.68 243.328 0 133.84-112.912 242.768-251.68 242.768-138.864 0-251.808-108.928-251.808-242.768z m0 0"></path></symbol><symbol id="icon-bianji" viewBox="0 0 1024 1024"><path d="M343.296 559.936c-0.576 0.768-1.184 1.568-1.44 2.528l-45.088 169.44a29.632 29.632 0 0 0 7.2 28 27.84 27.84 0 0 0 27.232 7.296l164.096-45.888c0.256 0 0.384 0.224 0.576 0.224a7.04 7.04 0 0 0 5.152-2.176L939.808 269.568c13.056-13.376 20.192-31.616 20.192-51.456a88.96 88.96 0 0 0-25.568-61.568l-41.44-42.56c-16.256-16.704-38.208-26.24-60.096-26.24a69.44 69.44 0 0 0-50.176 20.672L343.936 558.368c-0.448 0.416-0.32 1.056-0.64 1.568zM896.864 225.504l-43.584 44.64-70.656-73.6L825.6 152.512c6.784-7.008 19.968-5.984 27.744 2.048l41.472 42.56a23.456 23.456 0 0 1 6.784 16.16 17.184 17.184 0 0 1-4.736 12.224zM421.312 566.976l316.64-324.64 70.688 73.632L492.608 640l-71.296-73.024z m-57.696 131.648l22.88-86.112 61.024 62.592-83.904 23.52z m551.968-294.848c-16.608 0-30.24 13.856-30.304 31.104v419.36c0 21.984-17.408 39.872-38.912 39.872H163.488c-21.44 0-38.944-17.856-38.944-39.872V169.728c0-22.016 17.504-39.904 38.944-39.904h445.696a30.688 30.688 0 0 0 30.272-31.04 30.688 30.688 0 0 0-30.272-31.008H158.848C106.56 67.776 64 111.392 64 165.056v693.92c0 53.632 42.56 97.216 94.848 97.216h692.096c52.32 0 94.88-43.584 94.88-97.216v-424.32a30.656 30.656 0 0 0-30.24-30.88z" fill=""></path></symbol><symbol id="icon-shanchu" viewBox="0 0 1024 1024"><path d="M392.176 885.024c29.056 0 43.568-21.936 43.568-43.888v-563.2c0-29.264-21.792-43.888-43.568-43.888-29.056 0-43.584 21.936-43.584 43.888v555.888c0 29.264 21.792 51.2 43.584 51.2zM973.168 95.088H580.992v-51.2C580.992 21.936 559.2 0 530.16 0h-43.568c-29.056 0-50.832 21.936-50.832 43.888v43.888H43.568C21.792 95.088 0 117.024 0 138.976c0 29.264 21.792 43.888 43.568 43.888h72.624v746.064c0 51.2 43.568 95.088 94.416 95.088h602.784c50.832 0 94.416-43.888 94.416-95.088V182.864h72.624c29.056 0 43.584-21.936 43.584-43.888-0.016-21.952-29.072-43.888-50.848-43.888z m-167.04 789.936c0 29.264-21.792 43.888-43.584 43.888H254.192c-29.056 0-43.584-21.936-43.584-43.888V182.864h602.784v702.176h-7.264z m-181.568 0c29.056 0 43.568-21.936 43.568-43.888v-563.2c0-29.264-21.792-43.888-43.568-43.888-29.056 0-43.584 21.936-43.584 43.888v555.888c0.016 29.264 14.544 51.2 43.584 51.2z m0 0"></path></symbol><symbol id="icon-tianxie" viewBox="0 0 1024 1024"><path d="M121.905 780.19h780.19v97.524h-780.19V780.19zM823.296 298.496l-68.974-68.974-344.795 344.796-34.475 103.448 103.424-34.475zM875.008 246.76l17.237-17.238-68.949-68.949-17.262 17.237-17.237 17.238 68.974 68.973z"></path></symbol><symbol id="icon-sousuo1" viewBox="0 0 1024 1024"><path d="M1023.972002 964.002812l-59.981188 59.981189-271.443276-271.459276c-166.600191 136.489602-412.812649 126.986048-568.309361-28.494664-165.624236-165.624236-165.624236-434.187647 0-599.859881 165.624236-165.592238 434.187647-165.592238 599.827883 0 155.52871 155.52871 164.984266 401.789166 28.462666 568.389356L1023.972002 964.002812zM663.364906 184.007375c-132.585785-132.585785-347.327719-132.761777-479.705514-0.43198-132.329797 132.345796-132.121807 347.119729 0.463978 479.705514s347.375717 132.793775 479.705514 0.41598c132.329797-132.281799 132.169805-347.10373-0.463978-479.689514z"></path></symbol><symbol id="icon-spinner" viewBox="0 0 1024 1024"><path d="M384 149.33333333333334a128 128 0 1 1 256 0 128 128 0 0 1-256 0z m271.52 112.48a128 128 0 1 1 256 0 128 128 0 0 1-256 0zM832 533.3333333333334a64 64 0 1 1 127.968-0.032A64 64 0 0 1 832 533.3333333333334z m-112.48 271.52a64 64 0 1 1 127.968-0.032 64 64 0 0 1-127.968 0.032zM448 917.3333333333334a64 64 0 1 1 128 0 64 64 0 1 1-128 0z m-271.52-112.48a64 64 0 1 1 128 0 64 64 0 1 1-128 0z m-32-543.04a96 96 0 1 1 192 0 96 96 0 1 1-192 0zM56 533.3333333333334a72 72 0 1 1 144 0 72 72 0 0 1-144 0z"></path></symbol><symbol id="icon-weiye" viewBox="0 0 1024 1024"><path d="M635.2 512c0 4.8-3.2 11.2-6.4 14.4L329.6 825.6c-3.2 3.2-9.6 6.4-14.4 6.4-4.8 0-11.2-3.2-14.4-6.4l-32-32c-4.8-3.2-6.4-9.6-6.4-14.4 0-4.8 3.2-11.2 6.4-14.4L520 512 268.8 259.2c-3.2-3.2-6.4-9.6-6.4-14.4 0-4.8 3.2-11.2 6.4-14.4l32-32c3.2-3.2 9.6-6.4 14.4-6.4 4.8 0 11.2 3.2 14.4 6.4l299.2 299.2c3.2 3.2 6.4 9.6 6.4 14.4zM676.8 808v-592c0-12.8 11.2-24 24-24h36.8c12.8 0 24 11.2 24 24v590.4c0 12.8-11.2 24-24 24h-36.8c-12.8 1.6-24-9.6-24-22.4z" fill="#707070"></path></symbol><symbol id="icon-shouye" viewBox="0 0 1024 1024"><path d="M388.8 512c0-4.8 3.2-11.2 6.4-14.4l299.2-299.2c3.2-3.2 9.6-6.4 14.4-6.4 4.8 0 11.2 3.2 14.4 6.4l32 32c3.2 3.2 6.4 9.6 6.4 14.4 0 4.8-3.2 11.2-6.4 14.4L504 512l252.8 252.8c3.2 3.2 6.4 9.6 6.4 14.4 0 4.8-1.6 11.2-6.4 14.4l-32 32c-4.8 3.2-11.2 6.4-16 6.4-4.8 0-11.2-3.2-14.4-6.4L395.2 526.4c-4.8-3.2-6.4-9.6-6.4-14.4zM323.2 832h-36.8c-12.8 0-24-11.2-24-24v-592c0-12.8 11.2-24 24-24h36.8c12.8 0 24 11.2 24 24v590.4c0 14.4-11.2 25.6-24 25.6z" fill="#707070"></path></symbol><symbol id="icon-yixihuan" viewBox="0 0 1024 1024"><path d="M755.26144 82.91328c-68.736 0-137.53856 26.24-190.01856 78.72l-47.45728 47.488h-0.03072l-5.43744 5.47328-5.47328-5.47328h-0.03072l-47.51872-47.488C406.75328 109.15328 337.92 82.91328 269.08672 82.91328c-68.864 0-137.728 26.24-190.23872 78.72-105.088 104.92928-105.088 275.10272 0 380.032l214.016 213.79072h0.03072l166.43072 166.20544c13.08672 13.056 30.17728 19.39456 47.32928 19.39456 1.92 0 3.80928-0.09728 5.72928-0.256 1.88928 0.15872 3.80928 0.256 5.69344 0.256 17.09056 0 34.176-6.33856 47.232-19.39456l166.24128-166.20544 0.22528-0.22528 166.04672-166.04672 47.488-47.488c104.92928-104.99072 104.92928-275.10272 0-380.032-52.51072-52.51072-121.27744-78.75072-190.04928-78.75072z"></path></symbol><symbol id="icon-yidianzan" viewBox="0 0 1024 1024"><path d="M267.296 500.992v469.44h586.88l116.256-515.872h-439.36l109.984-353.952-132.864-47.04z"></path><path d="M508.192 53.568l132.864 47.04-109.984 353.952h439.392l-116.256 515.872H267.296v-469.44l240.896-447.424m0-53.568c-19.232 0-37.6 10.4-47.168 28.16L220.128 475.616c-4.192 7.808-6.4 16.512-6.4 25.376v469.44c0 29.6 24 53.568 53.568 53.568h586.88c25.056 0 46.752-17.344 52.256-41.792l116.256-515.872a53.472 53.472 0 0 0-52.256-65.312H603.776l88.416-284.512a53.536 53.536 0 0 0-33.28-66.368L526.048 3.104A52.736 52.736 0 0 0 508.192 0z"></path><path d="M211.008 512v458.432H56.288V512h154.72m0-53.536H56.288C25.184 458.464 0 482.432 0 512v458.432C0 1000.032 25.184 1024 56.288 1024h154.72c31.072 0 56.288-23.968 56.288-53.568V512c0-29.568-25.216-53.536-56.288-53.536z"></path></symbol><symbol id="icon-dianzan" viewBox="0 0 1024 1024"><path d="M508.192 53.568l132.864 47.04-109.984 353.952h439.392l-116.256 515.872H267.296v-469.44l240.896-447.424m0-53.568c-19.232 0-37.6 10.4-47.168 28.16L220.128 475.616c-4.192 7.808-6.4 16.512-6.4 25.376v469.44c0 29.6 24 53.568 53.568 53.568h586.88c25.056 0 46.752-17.344 52.256-41.792l116.256-515.872a53.472 53.472 0 0 0-52.256-65.312H603.776l88.416-284.512a53.536 53.536 0 0 0-33.28-66.368L526.048 3.104A52.736 52.736 0 0 0 508.192 0z"></path><path d="M211.008 512v458.432H56.288V512h154.72m0-53.536H56.288C25.184 458.464 0 482.432 0 512v458.432C0 1000.032 25.184 1024 56.288 1024h154.72c31.072 0 56.288-23.968 56.288-53.568V512c0-29.568-25.216-53.536-56.288-53.536z"></path></symbol><symbol id="icon-yishoucang" viewBox="0 0 1024 1024"><path d="M865.6 1024c-27.2 0-51.2-11.2-68.8-32L520 704 243.2 992c-17.6 20.8-41.6 32-68.8 32-49.6 0-89.6-41.6-89.6-91.2V150.4C84.8 67.2 150.4 0 232 0h576c81.6 0 147.2 67.2 147.2 150.4v782.4c0 49.6-40 91.2-89.6 91.2z" fill=""></path></symbol><symbol id="icon-fenxianghover" viewBox="0 0 1024 1024"><path d="M787.00544 629.888c-69.504 0-130.36544 36.224-165.248 90.752l-210.304-120.25856c13.63456-26.624 21.95456-56.32 21.95456-88.38144 0-19.77856-3.712-38.4-9.216-56.448l218.752-125.056c35.90144 38.912 86.85056 63.67744 144 63.67744 108.34944 0 196.352-87.936 196.352-196.352S895.29344 1.46944 786.944 1.46944c-108.48256 0-196.352 87.936-196.352 196.352 0 19.77856 3.77344 38.46656 9.14944 56.448L380.98944 379.264C345.088 340.352 294.144 315.648 237.056 315.648 128.57856 315.648 40.64256 403.51744 40.64256 512s87.936 196.352 196.352 196.352c44.8 0 85.56544-15.616 118.59456-40.76544l-0.768 1.34144 237.88544 135.99744c-0.896 6.97856-2.10944 13.89056-2.10944 21.376 0 108.22144 87.86944 196.224 196.352 196.224 108.34944 0 196.352-88.00256 196.352-196.224 0.05632-108.53888-87.94112-196.41344-196.29568-196.41344z"></path></symbol><symbol id="icon-pinglunhover" viewBox="0 0 1024 1024"><path d="M896.54784 32h-768C57.8304 32 0.51712 91.55072 0.51712 165.02272v498.75456c0 73.44128 58.56256 141.11744 130.87744 141.11744H326.5024c33.95072 36.28544 174.72 182.20544 174.72 182.20544a15.488 15.488 0 0 0 22.59456 0s103.07072-116.992 170.17856-182.20544h199.61344c72.32 0 130.87744-67.712 130.87744-141.11744V165.02784c0.03072-73.472-57.28256-133.02784-127.93856-133.02784zM256.50176 497.50528c-35.328 0-64-29.75744-64-66.49344s28.672-66.49856 64-66.49856c35.35872 0 64 29.75744 64 66.49856 0 36.73088-28.64128 66.49344-64 66.49344z m256.03072 0c-35.35872 0-64-29.75744-64-66.49344s28.64128-66.49856 64-66.49856c35.328 0 63.96928 29.75744 63.96928 66.49856 0 36.73088-28.64128 66.49344-63.96928 66.49344z m255.96928 0c-35.328 0-64-29.75744-64-66.49344s28.672-66.49856 64-66.49856 64.03072 29.75744 64 66.49856c0 36.73088-28.672 66.49344-64 66.49344z"></path></symbol><symbol id="icon-guanbi1" viewBox="0 0 1024 1024"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m160-768L512 416 352 256l-96 96 160 160-160 160 96 96 160-160 160 160 96-96-160-160 160-160-96-96z"></path></symbol><symbol id="icon-shangchuan" viewBox="0 0 1024 1024"><path d="M960 640c-35.2 0-64 28.8-64 64v192H128V704c0-35.2-28.8-64-64-64s-64 28.8-64 64v256c0 35.2 28.8 64 64 64h896c35.2 0 64-28.8 64-64V704c0-35.2-28.8-64-64-64z" fill=""></path><path d="M278.4 388.8L448 219.2V704c0 35.2 28.8 64 64 64s64-28.8 64-64V219.2l169.6 169.6c25.6 25.6 67.2 25.6 91.2 0 25.6-25.6 25.6-65.6 0-91.2l-272-272-6.4-6.4C547.2 8 529.6 0 512 0c-17.6 0-35.2 8-46.4 19.2-1.6 1.6-4.8 3.2-6.4 6.4l-272 272c-25.6 25.6-25.6 65.6 0 91.2 24 25.6 65.6 25.6 91.2 0z" fill=""></path></symbol><symbol id="icon-fasixin" viewBox="0 0 1024 1024"><path d="M884.8 1024c-1.6 0-1.6 0-3.2-1.6l-88-60.8-4.8 1.6c-17.6 3.2-36.8 4.8-62.4 4.8-68.8 0-134.4-20.8-187.2-59.2 24-3.2 48-6.4 72-12.8 35.2 16 75.2 25.6 115.2 25.6 16 0 33.6-1.6 52.8-4.8l8-1.6h1.6c1.6 0 3.2 0 4.8 1.6l6.4 4.8 54.4 38.4v-64c0-3.2 1.6-6.4 3.2-6.4l11.2-6.4c65.6-41.6 105.6-108.8 105.6-179.2 0-25.6-4.8-51.2-14.4-75.2 9.6-19.2 17.6-40 24-60.8 25.6 40 40 86.4 40 134.4 0 86.4-48 169.6-128 220.8l-4.8 3.2v92.8c0 4.8-4.8 4.8-6.4 4.8m-657.6-67.2c-8 0-16-4.8-16-17.6v-144l-4.8-3.2C144 752 92.8 699.2 56 638.4 19.2 574.4 0 504 0 433.6c0-115.2 49.6-224 140.8-305.6C232 44.8 352 0 481.6 0c140.8 0 273.6 54.4 364.8 150.4 75.2 78.4 116.8 180.8 115.2 284.8 0 115.2-49.6 224-140.8 305.6-91.2 81.6-212.8 128-340.8 128-27.2 0-65.6-1.6-102.4-9.6l-4.8-1.6-137.6 96c-1.6 1.6-4.8 3.2-8 3.2M480 52.8C241.6 52.8 46.4 224 46.4 435.2c0 124.8 68.8 241.6 182.4 312l17.6 11.2c6.4 3.2 11.2 12.8 11.2 20.8v94.4l83.2-57.6 12.8-9.6c4.8-3.2 9.6-4.8 14.4-4.8h4.8l14.4 3.2c35.2 6.4 65.6 9.6 92.8 9.6 126.4 0 248-49.6 329.6-136 65.6-68.8 102.4-156.8 100.8-246.4C912 224 718.4 52.8 480 52.8M702.4 496c-25.6 0-48-22.4-48-49.6 0-27.2 20.8-49.6 48-49.6 25.6 0 48 22.4 48 49.6 0 27.2-22.4 49.6-48 49.6m-217.6 0c-25.6 0-48-22.4-48-49.6 0-27.2 20.8-49.6 48-49.6 25.6 0 48 22.4 48 49.6 0 27.2-20.8 49.6-48 49.6m-224 0c-25.6 0-48-22.4-48-49.6 0-27.2 20.8-49.6 48-49.6 25.6 0 48 22.4 48 49.6 0 27.2-20.8 49.6-48 49.6"></path></symbol><symbol id="icon-jiahao" viewBox="0 0 1024 1024"><path d="M960 576H64c-35.2 0-64-28.8-64-64s28.8-64 64-64h896c35.2 0 64 28.8 64 64s-28.8 64-64 64z"></path><path d="M576 64v896c0 35.2-28.8 64-64 64s-64-28.8-64-64V64c0-35.2 28.8-64 64-64s64 28.8 64 64z"></path></symbol><symbol id="icon-shifoukuangzhengque" viewBox="0 0 1024 1024"><path d="M768 0H256C115.2 0 0 115.2 0 256v512c0 140.8 115.2 256 256 256h512c140.8 0 256-115.2 256-256V256c0-140.8-115.2-256-256-256z m17.6 377.6L460.8 728c-9.6 9.6-27.2 14.4-40 14.4-14.4 0-32-3.2-41.6-14.4l-142.4-153.6c-17.6-19.2-17.6-49.6 0-68.8 17.6-19.2 46.4-19.2 64 0l120 128 300.8-324.8c17.6-19.2 46.4-19.2 64 0s17.6 49.6 0 68.8z"></path></symbol><symbol id="icon-guanbi" viewBox="0 0 1024 1024"><path d="M758.4 713.6l-448-448c-4.8-6.4-12.8-9.6-22.4-9.6-17.6 0-32 14.4-32 32 0 9.6 3.2 17.6 9.6 22.4l448 448c6.4 6.4 14.4 9.6 22.4 9.6 17.6 0 32-14.4 32-32 0-9.6-3.2-17.6-9.6-22.4z" fill=""></path><path d="M713.6 265.6l-448 448c-6.4 4.8-9.6 12.8-9.6 22.4 0 17.6 14.4 32 32 32 9.6 0 17.6-3.2 22.4-9.6l448-448c6.4-6.4 9.6-14.4 9.6-22.4 0-17.6-14.4-32-32-32-9.6 0-17.6 3.2-22.4 9.6z" fill=""></path></symbol><symbol id="icon-tianjiazhuanji" viewBox="0 0 1024 1024"><path d="M896 64c35.2 0 64 28.8 64 64v768c0 35.2-28.8 64-64 64H128c-35.2 0-64-28.8-64-64V128c0-35.2 28.8-64 64-64h768m0-64H128C57.6 0 0 57.6 0 128v768c0 70.4 57.6 128 128 128h768c70.4 0 128-57.6 128-128V128c0-70.4-57.6-128-128-128z"></path><path d="M803.2 480H220.8c-16 0-28.8 12.8-28.8 28.8v6.4c0 16 12.8 28.8 28.8 28.8h582.4c16 0 28.8-12.8 28.8-28.8v-6.4c0-16-12.8-28.8-28.8-28.8z"></path><path d="M512 192c-17.6 0-32 14.4-32 32v576c0 17.6 14.4 32 32 32s32-14.4 32-32V224c0-17.6-14.4-32-32-32z"></path></symbol><symbol id="icon-call" viewBox="0 0 1027 1024"><path d="M1001.6 910.4c-16 35.2-56 59.2-88 76.8-43.2 24-86.4 36.8-136 36.8-67.2 0-128-27.2-190.4-49.6-44.8-16-88-35.2-128-60.8C336 836.8 187.2 688 110.4 564.8c-24-40-44.8-83.2-60.8-128C27.2 376 0 313.6 0 246.4c0-48 14.4-92.8 36.8-136 17.6-32 41.6-73.6 76.8-88C137.6 11.2 188.8 0 216 0c4.8 0 9.6 0 16 1.6 16 4.8 32 40 38.4 56 24 41.6 46.4 83.2 70.4 124.8 11.2 19.2 33.6 41.6 33.6 64 0 44.8-131.2 108.8-131.2 148.8 0 19.2 17.6 44.8 28.8 62.4 73.6 132.8 164.8 224 297.6 297.6 17.6 9.6 43.2 28.8 62.4 28.8 40 0 104-131.2 148.8-131.2 22.4 0 46.4 22.4 64 33.6 40 24 83.2 46.4 124.8 70.4 14.4 8 49.6 24 56 38.4 1.6 4.8 1.6 9.6 1.6 16-3.2 24-14.4 75.2-25.6 99.2z"></path></symbol><symbol id="icon-mail" viewBox="0 0 1027 1024"><path d="M926.4 358.4c-89.6 62.4-179.2 123.2-267.2 185.6-36.8 25.6-100.8 78.4-145.6 78.4-46.4 0-108.8-52.8-145.6-78.4-88-62.4-177.6-124.8-267.2-185.6-40-27.2-97.6-92.8-97.6-144 0-56 30.4-104 91.2-104h841.6c49.6 0 91.2 41.6 91.2 91.2-3.2 64-51.2 121.6-100.8 156.8z m97.6 464c0 49.6-41.6 91.2-91.2 91.2H91.2c-49.6 0-91.2-41.6-91.2-91.2V369.6c17.6 19.2 36.8 35.2 57.6 49.6 94.4 64 190.4 129.6 283.2 196.8 48 35.2 107.2 78.4 169.6 78.4 62.4 0 121.6-43.2 169.6-78.4 92.8-67.2 188.8-132.8 284.8-196.8 20.8-14.4 40-30.4 57.6-49.6v452.8z"></path></symbol></svg><svg aria-hidden="true" style="position: absolute; width: 0px; height: 0px; overflow: hidden;"><symbol id="icon-xiajiantou" viewBox="0 0 1024 1024"><path d="M328.208 346.062h368.494c20.393 0 36.887 16.366 36.887 36.757 0 9.484-3.637 18.056-9.483 24.55L541.873 650.522c-12.211 16.105-35.2 19.484-51.438 7.275-2.859-2.08-5.324-4.547-7.274-7.275L298.853 404.772c-12.08-16.106-8.83-39.225 7.404-51.306 6.626-5.066 14.289-7.404 21.95-7.404z"></path></symbol><symbol id="icon-shouji" viewBox="0 0 1024 1024"><path d="M537.754 795.889c-26.41 0-47.893 21.478-47.893 47.892s21.484 47.893 47.893 47.893 47.892-21.479 47.892-47.893-21.483-47.892-47.892-47.892z"></path><path d="M774.697 42.071H300.815c-39.864 0-72.3 32.43-72.3 72.3v795.264c0 39.869 32.43 72.3 72.3 72.3h473.872c39.87 0 72.3-32.431 72.3-72.3v-795.27c0.004-39.864-32.426-72.294-72.29-72.294zM300.815 90.266h473.872a24.125 24.125 0 0 1 24.1 24.1v595.809H276.72v-595.81a24.125 24.125 0 0 1 24.094-24.1z m473.882 843.463H300.815a24.125 24.125 0 0 1-24.1-24.1V762.501h522.072V909.63a24.115 24.115 0 0 1-24.09 24.1z"></path></symbol><symbol id="icon-tianxie" viewBox="0 0 1024 1024"><path d="M121.905 780.19h780.19v97.524h-780.19V780.19zM823.296 298.496l-68.974-68.974-344.795 344.796-34.475 103.448 103.424-34.475zM875.008 246.76l17.237-17.238-68.949-68.949-17.262 17.237-17.237 17.238 68.974 68.973z"></path></symbol><symbol id="icon-sousuo" viewBox="0 0 1024 1024"><path d="M1023.972002 964.002812l-59.981188 59.981189-271.443276-271.459276c-166.600191 136.489602-412.812649 126.986048-568.309361-28.494664-165.624236-165.624236-165.624236-434.187647 0-599.859881 165.624236-165.592238 434.187647-165.592238 599.827883 0 155.52871 155.52871 164.984266 401.789166 28.462666 568.389356L1023.972002 964.002812zM663.364906 184.007375c-132.585785-132.585785-347.327719-132.761777-479.705514-0.43198-132.329797 132.345796-132.121807 347.119729 0.463978 479.705514s347.375717 132.793775 479.705514 0.41598c132.329797-132.281799 132.169805-347.10373-0.463978-479.689514z"></path></symbol><symbol id="icon-guanbi" viewBox="0 0 1024 1024"><path d="M1002.211316 933.90818c24.46369 24.46369 29.007633 59.583246 10.159871 78.447007-18.863761 18.863761-53.983317 14.303819-78.447007-10.159871L21.807724 90.09486C-2.655966 65.631169-7.199909 30.495614 11.647853 11.647853c18.863761-18.863761 53.983317-14.303819 78.447007 10.159871L1002.211316 933.90818z"></path><path d="M933.92418 21.807724C958.38787-2.655966 993.507426-7.199909 1012.371187 11.647853c18.863761 18.863761 14.303819 53.983317-10.159871 78.447007L90.09486 1002.211316c-24.46369 24.46369-59.583246 29.007633-78.447007 10.159871-18.847761-18.863761-14.303819-53.983317 10.159871-78.463007L933.92418 21.807724z"></path></symbol><symbol id="icon-caidan" viewBox="0 0 1024 1024"><path d="M0 132.8a48.496 48.496 0 0 0 48.496 48.496h927.008a48.496 48.496 0 1 0 0-96.992H48.496A48.496 48.496 0 0 0 0 132.8s0-26.784 0 0zM0 512.016a48.48 48.48 0 0 0 48.48 48.48h927.04a48.48 48.48 0 0 0 0-96.96H48.48A48.48 48.48 0 0 0 0 512.016s0-26.784 0 0zM0 891.2a48.496 48.496 0 0 0 48.496 48.496h927.008a48.496 48.496 0 1 0 0-96.992H48.496A48.496 48.496 0 0 0 0 891.2s0-26.784 0 0z"></path></symbol><symbol id="icon-yonghudenglu" viewBox="0 0 1024 1024"><path d="M1022.26704 962.432c-43.888-157.584-162.16-281.216-312.064-340.144 92.8-61.376 153.92-164.496 153.92-281.168C864.12304 153.04 706.04304 0 511.70704 0 317.35504 0 159.19504 153.04 159.19504 341.136c0 116.704 61.152 219.84 154.064 281.184C164.13904 681.024 46.18704 803.792 1.80304 960.16c-7.344 26.016 8.464 52.864 35.36 60.032a52.016 52.016 0 0 0 38.4-4.608 49.072 49.072 0 0 0 23.712-29.568c50.768-178.96 220.352-303.92 412.448-303.92 193.04 0 362.848 125.712 412.944 305.744 7.296 26.048 34.992 41.456 61.952 34.48 26.912-7.04 42.88-33.824 35.648-59.888zM260.25104 341.136c0-134.256 112.816-243.424 251.472-243.424 138.576 0 251.328 109.184 251.328 243.424 0 133.904-112.768 242.864-251.328 242.864-138.672 0-251.472-108.976-251.472-242.864z m0 0"></path></symbol><symbol id="toolbar-csdnlogo" viewBox="0 0 1024 1024"><path d="M533.941333 419.264c14.709333-1.621333 37.290667-3.264 68.352-3.264 51.872 0 93.802667 9.152 119.776 28.416 23.338667 17.952 38.858667 47.008 34.56 89.130667-3.978667 39.189333-24.042667 66.634667-53.312 83.594666C676.544 633.152 642.837333 640 592.106667 640c-29.888 0-58.421333-1.642667-80.106667-4.896l21.941333-215.84z m42.869334 172.938667c4.981333 0.992 11.562667 1.973333 24.533333 1.973333 51.882667 0 88.469333-25.877333 92.16-62.24 5.333333-52.554667-27.125333-70.944-81.802667-70.624-7.072 0-16.917333 0-22.133333 0.970667L576.8 592.213333h0.010667z m223.498666-164.704c210.954667-39.872 229.162667 31.776 222.645334 95.189333L1010.656 640h-66.944l11.210667-106.986667c2.421333-23.562667 17.504-69.653333-55.338667-67.914666-25.184 0.608-37.706667 4.064-37.706667 4.064s-2.186667 28.469333-4.832 49.514666L844.32 640H778.666667l13.024-119.573333" fill="#231916"></path><path d="M226.634667 632.682667c-12.373333 4.341333-38.037333 7.317333-73.909334 7.317333C49.6 640-6.048 590.933333 0.522667 526.090667 8.416 448.810667 90.858667 405.333333 181.141333 405.333333c34.976 0 55.552 2.858667 74.858667 7.637334l-6.208 52.064c-12.821333-4.384-42.890667-8.405333-67.232-8.405334-53.141333 0-98.250667 16.042667-103.424 66.762667-4.608 45.354667 27.061333 67.04 86.816 67.04 20.8 0 51.477333-3.018667 65.653333-7.370667l-4.992 49.6 0.021334 0.021334z" fill="#C92027"></path><path d="M272.714667 580.021333c19.285333 6.762667 59.488 13.504 92 13.504 35.029333 0 54.528-9.333333 56.096-23.797333 1.418667-13.205333-12.928-14.986667-52.490667-24.010667-54.666667-12.896-89.546667-32.842667-86.133333-64.704C286.176 443.989333 337.685333 416 416.725333 416c38.56 0 75.914667 2.613333 95.274667 8.714667l-6.656 46.666666c-12.565333-4.202667-60.672-10.037333-93.205333-10.037333-32.992 0-50.069333 9.973333-51.253334 20.917333-1.493333 13.845333 15.658667 14.485333 58.528 25.450667 58.026667 14.154667 83.402667 34.090667 80.085334 64.992C495.605333 609.109333 449.258667 640 356.714667 640c-38.528 0-71.744-6.762667-90.048-13.525333l6.048-46.453334z" fill="#231916"></path></symbol><symbol id="icon-morentouxiang" viewBox="0 0 1024 1024"><path d="M512 512m-512 0a512 512 0 1 0 1024 0 512 512 0 1 0-1024 0Z" fill="#A0C3FF"></path><path d="M691.2 887.466667c-55.466667-25.6-123.733333-51.2-123.733333-51.2v-38.4c68.266667-25.6 119.466667-89.6 132.266666-166.4 12.8-4.266667 38.4-17.066667 46.933334-55.466667l8.533333-46.933333s4.266667-59.733333-42.666667-46.933334c4.266667-38.4 4.266667-81.066667 4.266667-115.2-4.266667-64-89.6-98.133333-89.6-98.133333l12.8-17.066667s-42.666667-12.8-59.733333-4.266666l12.8-29.866667s-85.333333 0-132.266667 38.4h-4.266667v-17.066667s-145.066667 21.333333-140.8 243.2c-46.933333-12.8-42.666667 46.933333-42.666666 46.933334l8.533333 46.933333c4.266667 38.4 29.866667 51.2 46.933333 55.466667 12.8 81.066667 64 145.066667 132.266667 166.4v38.4s-68.266667 29.866667-123.733333 51.2c-29.866667 12.8-59.733333 34.133333-81.066667 59.733333 68.266667 51.2 157.866667 76.8 256 76.8s187.733333-25.6 264.533333-72.533333c-21.333333-29.866667-51.2-46.933333-85.333333-64z" fill="#4374E0"></path></symbol><symbol id="icon-icon_boke" viewBox="0 0 1024 1024"><path d="M512 1024C229.248 1024 0 794.752 0 512S229.248 0 512 0s512 229.248 512 512-229.248 512-512 512z m298.667-256H213.333v42.667h597.334V768z m-21.334-448L704 234.667 341.333 597.333l-42.666 128 128-42.666L789.333 320z"></path></symbol><symbol id="icon-icon_gitchatx" viewBox="0 0 1024 1024"><path d="M810.667 533.333v-64h-384v85.334h298.666v128h85.334V533.333zM256 810.667h426.667v-85.334h-384V298.667h426.666V384h85.334V213.333H213.333v597.334H256zM512 1024C229.248 1024 0 794.752 0 512S229.248 0 512 0s512 229.248 512 512-229.248 512-512 512z m213.333-298.667v85.334h85.334v-85.334h-85.334z"></path></symbol><symbol id="icon-guanbi1" viewBox="0 0 1024 1024"><path d="M512 1024A512 512 0 1 1 512 0a512 512 0 0 1 0 1024z m160-768L512 416 352 256l-96 96 160 160-160 160 96 96 160-160 160 160 96-96-160-160 160-160-96-96z"></path></symbol></svg><div id="MathJax_Message" style="display: none;"></div><div class="csdn-toolbar csdn-toolbar tb_disnone ">        <div class="container row center-block ">          <ul class="pull-left left-menu clearfix">            <li>              <a href="http://www.csdn.net/" title="3月14日 π Day" target="_blank"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/paidaylogo.png"></a>            </li>            <li><a href="http://blog.csdn.net/" class="toolbar_to_feed" title="博客" target="_blank">博客</a></li>            <li><a href="http://edu.csdn.net/" title="学院" target="_blank">学院</a></li>            <li><a href="http://download.csdn.net/" title="下载" target="_blank">下载</a></li>            <li><a href="http://gitbook.cn/?ref=csdn" title="GitChat" target="_blank">GitChat</a></li>            <li class="tb_is1090hide"><a href="http://bbs.csdn.net/" title="论坛" target="_blank">论坛</a></li>            <li class="tb_is1150hide"><a href="http://ask.csdn.net/" title="问答" target="_blank">问答</a></li>            <li class="tb_is1210hide"><a href="http://mall.csdn.net/" title="商城" target="_blank">商城</a></li>            <li class="tb_is1270hide"><a href="http://download.csdn.net/vip_code" title="下载VIP" target="_blank">VIP</a></li>            <li class="tb_is1330hide"><a href="http://huiyi.csdn.net/" title="活动" target="_blank">活动</a></li>            <li class="tb_is1400hide"><a href="http://job.csdn.net/" title="招聘" target="_blank">招聘</a></li>            <li class="tb_is1452hide"><a href="http://www.iteye.com/" title="ITeye" target="_blank">ITeye</a></li>            <li class="tb_is1513hide"><a href="http://www.gitee.com/" title="码云" target="_blank">码云</a></li>            <li class="tb_is1513hide"><a href="http://www.csto.com/" title="CSTO" target="_blank">CSTO</a></li>            <li class="show-more">            <a href="javascript:;" class="show-more-a"><svg width="22" height="4" xmlns="http://www.w3.org/2000/svg"><path d="M2 4a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm9 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4zm9 0a2 2 0 1 1 0-4 2 2 0 0 1 0 4z" fill="#4F4F4F" fill-rule="evenodd"></path></svg></a>              <div class="more">                <div class="tb_is1090show"><a href="http://bbs.csdn.net/" target="_blank">论坛</a></div>                <div class="tb_is1150show"><a href="http://ask.csdn.net/" target="_blank">问答</a></div>                <div class="tb_is1210show"><a href="http://mall.csdn.net/" target="_blank">商城</a></div>                <div class="tb_is1270show"><a href="http://download.csdn.net/vip_code" target="_blank">下载VIP</a></div>                <div class="tb_is1330show"><a href="http://huiyi.csdn.net/" target="_blank">活动</a></div>                <div class="tb_is1400show"><a href="http://job.csdn.net/" target="_blank">招聘</a></div>                <div class="tb_is1452show"><a href="http://www.iteye.com/" target="_blank">ITeye</a></div>                <div class="tb_is1513show"><a href="http://www.gitee.com/" target="_blank">码云</a></div>                <div class="tb_is1513show"><a href="http://www.csto.com/" target="_blank">CSTO</a></div>              </div>            </li>          </ul>          <div class="pull-right login-wrap unlogin">            <ul class="btns">            <li class="toolbar-tracking csdn-tracking-statistics tracking-click" data-mod="popu_369"><a href="#" style="padding:0" target="_blank"></a></li>              <li>                <div class="search_bar csdn-tracking-statistics tracking-click" data-mod="popu_366">                  <input class="input_search" name="" type="text">                  <a href="http://so.csdn.net/so/" target="_blank" class="btn-nobg-noborder btn-search"><i class="iconfont-toolbar toolbar-sousuo"></i></a>                </div>              </li>              <li class="write-bolg-btn csdn-tracking-statistics tracking-click" data-mod="popu_370"><a class="" href="http://mp.csdn.net/postedit" target="_blank"><i class="iconfont-toolbar toolbar-icon_boke"></i><span>写博客</span></a></li>              <li class="gitChat"><a class="" href="http://gitbook.cn/new/gitchat/activity?utm_source=csdnblog1" target="_blank"><i class="iconfont-toolbar toolbar-icon_gitchatx"></i><span>发Chat</span></a></li>              <li class="userinfo"><a href="https://passport.csdn.net/account/login">登录</a><span></span><a href="https://passport.csdn.net/account/mobileregister?action=mobileRegister">注册</a></li>              <li class="userLogin">                <div class="loginCenter"><a href="http://my.csdn.net/" target="_blank"><img class="login_img" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/100x100.jpg"><div class="toolbar-circle"></div></a></div>                <div class="userControl">                  <div><a href="http://blog.csdn.net/" target="_blank">我的博客</a></div>                  <div><a class="xiaoxi" href="http://msg.csdn.net/" target="_blank">消息<span class="toolbar-newsL">(3)</span></a></div>                  <div><a href="http://my.csdn.net/my/account/changepwd" target="_blank">设置</a></div>                  <div><a href="http://bbs.csdn.net/forums/Service" target="_blank">反馈</a></div>                  <div><a href="http://oldblog.csdn.net/home/help.html" target="_blank">帮助</a></div>                  <div><a href="http://passport.csdn.net/account/logout">退出</a></div>                </div>              </li>            </ul>          </div>        </div>    </div><script class="toolbar-s" type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/iconfont_002.js"></script>
<link rel="stylesheet" href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/content_toolbar.css">
<script id="toolbar-tpl-scriptId" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/content_toolbar.js" type="text/javascript" domain="//blog.csdn.net/"></script>
<div id="container">
    <!--header+navigator-->
    <div id="header">
    <div class="header">
        <div id="blog_title">
            <h2>
                <a href="http://blog.csdn.net/ygl_smile">YGL_smile的博客</a>
            </h2>
            <h3>
                             </h3>
            <div class="clear">
            </div>
        </div>
        <div class="clear">
        </div>
    </div>
</div>
<div id="navigator">
    <div class="navigator_bg">
    </div>
    <div class="navigator">
        <ul>
            <li id="btnContents"><a href="http://blog.csdn.net/ygl_smile?viewmode=contents"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_mulu'])">
                    <img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ico_list.gif">目录视图</span></a></li>
            <li id="btnView"><a href="http://blog.csdn.net/ygl_smile?viewmode=list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_zhaiyao'])">
                    <img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ico_summary.gif">摘要视图</span></a></li>
            <li id="btnRss"><a href="http://blog.csdn.net/ygl_smile/rss/list"><span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_RSS'])">
                    <img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/ico_rss.gif">订阅</span></a></li>
                    </ul>
    </div>
</div>
    <div id="body">
        <div id="main">
            <div class="main">
               <div class="main">
    <div class="ad_class">
    </div>
    <!--文章详情-->
    <div id="article_details" class="details">
        <div class="article_title">
            <span class="ico ico_type_Translated"></span>
            <h1>
                <span class="link_title">
                    <a href="http://blog.csdn.net/YGL_smile/article/details/58137421">
                        
                                                Scrapy 1.3.2 - 基础教程                    </a>
                </span>
            </h1>
        </div>
        <div class="article_manage clearfix">
        <div class="article_l">
        <span class="link_categories">
        标签：
                            <a href="http://so.csdn.net/so/search/s.do?q=scrapy&amp;t=blog" target="_blank">scrapy</a>
                    <a href="http://so.csdn.net/so/search/s.do?q=%E7%88%AC%E8%99%AB&amp;t=blog" target="_blank">爬虫</a>
                    <a href="http://so.csdn.net/so/search/s.do?q=%E6%95%B0%E6%8D%AE&amp;t=blog" target="_blank">数据</a>
                    <a href="http://so.csdn.net/so/search/s.do?q=%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3&amp;t=blog" target="_blank">官方文档</a>
                    <a href="http://so.csdn.net/so/search/s.do?q=scrapy-1-3&amp;t=blog" target="_blank">scrapy-1-3</a>
                        </span>
    </div>
        <div class="article_r">
        <span class="link_postdate">2017年02月27日 16:40:32</span>
        <span class="link_view" title="阅读次数">3470人阅读</span>
        <span class="link_comments" title="评论次数"> <a href="javascript:void(0);" class="btn-pinglun">评论</a>(0)</span>
        <span class="link_collect csdn-tracking-statistics" data-pid="blog" data-mod="popu_171">
            <a href="javascript:void(0);" onclick="javascript:collectArticle('Scrapy 1.3.2 - 基础教程','58137421');return false;" title="收藏" target="_blank">收藏</a>
        </span>
                <span class="link_report">
            <a href="javascript:void(0);" onclick="javascript:report(58137421, 2);return false;" title="举报">举报</a>
        </span>
                    </div>
</div>
<script type="text/javascript">
    $(function () {
        try
        {
            var lib = eval("("+$("#lib").attr("value")+")");
            var html = "";
            if (lib.err == 0) {
                $.each(lib.data, function (i) {
                    var obj = lib.data[i];
                    //html += '<img src="' + obj.logo + '"/>' + obj.name + "&nbsp;&nbsp;";
                    html += ' <a href="' + obj.url + '" target="_blank">';
                    html += ' <img src="' + obj.logo + '">';
                    html += ' <em><b>' + obj.name + '</b></em>';
                    html += ' </a>';
                });
                if (html != "") {
                    setTimeout(function () {
                        $("#lib").html(html);
                        $("#embody").show();
                    }, 100);
                }
            }
        } catch (err)
        { }

    });
</script>
                <div class="category clearfix">
            <div class="category_l">
                <img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/category_icon.jpg">
                <span>分类：</span>
            </div>
            <div class="category_r">
                                            <label onclick="GetCategoryArticles('6756855','YGL_smile','top','58137421');">
                    <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_fenlei']);">
                       scrapy<em>（3）</em>
                    </span>
                    <img class="arrow-down" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/arrow_triangle%2520_down.jpg" style="display:inline;">
                    <img class="arrow-up" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/arrow_triangle_up.jpg" style="display:none;">
                    <div class="subItem">
                        <div class="subItem_t">
                            <a href="http://blog.csdn.net/ygl_smile/article/category/6756855" target="_blank">作者同类文章</a>
                            <i class="J_close">X</i>
                        </div>
                        <ul class="subItem_l" id="top_6756855"></ul>
                    </div>
                </label>
                                        </div>
        </div>
                <div class="bog_copyright">
                    </div>
        <div style="clear:both"></div><div style="border:solid 1px #ccc; background:#eee; float:left; min-width:200px;padding:4px 10px;"><p style="text-align:right;margin:0;"><span style="float:left;">目录<a href="http://blog.csdn.net/ygl_smile/article/details/58137421" title="系统根据文章中H1到H6标签自动生成文章目录">(?)</a></span><a href="#" onclick="javascript:return openct(this);" title="展开">[+]</a></p><ol style="display:none;margin-left:14px;padding-left:14px;line-height:160%;"><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t0">Scrapy 教程</a></li><ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t1">创建项目</a></li><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t2">第一个Spider</a></li><ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t3">怎么运行Spider</a></li><ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t4">刚刚发生了什么</a></li></ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t5">start_requests 方法的快捷方式</a></li></ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t6">提取数据</a></li><ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t7">XPath小介绍</a></li><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t8">提取名言和作者</a></li></ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t9">在我们的爬虫提取数据</a></li></ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t10">存储爬取到的数据</a></li><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t11">跟随链接</a></li><ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t12">更多的例子</a></li></ol><li><a href="http://blog.csdn.net/ygl_smile/article/details/58137421#t13">使用Spider参数</a></li></ol></div><div style="clear:both"></div><div id="article_content" class="article_content csdn-tracking-statistics" data-pid="blog" data-mod="popu_307" data-dsm="post" style="overflow: hidden;">
                    <div class="markdown_views">
                <h1 id="scrapy-教程"><a name="t0" target="_blank"></a>Scrapy 教程</h1>

<p>我们将要爬取<a href="http://quotes.toscrape.com/" target="_blank">quotes.toscrape.com</a>，这个网站有名人语录的列表。 <br>
本教程将会带你做一下步骤：</p>

<ol>
<li>创建一个新的Scrapy项目</li>
<li>编写爬虫爬取网站并提取数据</li>
<li>使用命令行导出爬取到的数据</li>
<li>更改爬虫让其跟随链接</li>
<li>使用爬虫参数</li>
</ol>

<h2 id="创建项目"><a name="t1" target="_blank"></a>创建项目</h2>

<p>在开始爬取之前，你需要创建一个Scrapy项目，进入你存放代码的目录，并且运行它。</p>

<blockquote>
  <p>scrapy startproject tutorial <br>
  这个命令会创建一个带有如下内容的<strong>tutorial</strong>目录：</p>
</blockquote>



<pre class="prettyprint" name="code"><code class="hljs avrasm has-numbering">tutorial/
    scrapy<span class="hljs-preprocessor">.cfg</span>            <span class="hljs-preprocessor"># 部署配置文件</span>

    tutorial/             <span class="hljs-preprocessor"># 项目的Python模块，将在这里编写代码</span>
        __init__<span class="hljs-preprocessor">.py</span>

        items<span class="hljs-preprocessor">.py</span>          <span class="hljs-preprocessor"># 项目Item定义文件</span>

        pipelines<span class="hljs-preprocessor">.py</span>      <span class="hljs-preprocessor"># 项目管道文件</span>

        settings<span class="hljs-preprocessor">.py</span>       <span class="hljs-preprocessor"># 项目配置文件</span>

        spiders/          <span class="hljs-preprocessor"># 放置爬虫（spider）的目录</span>
            __init__<span class="hljs-preprocessor">.py</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li></ul></pre>



<h2 id="第一个spider"><a name="t2" target="_blank"></a>第一个Spider</h2>

<p>Spider 是用户定义的从网站（或一组网站）上爬取数据的类。它们必须继承自<strong>scrapy.spider</strong>并且定义初始化请求，跟随链接的规则以及如何从下载的页面中提取出结构化数据。 <br>
一下是关于第一个spider的代码，将他保存在<strong>tutorial/spiders</strong>目录下，并命名为<strong>quotes_spidder.py</strong>。</p>



<pre class="prettyprint" name="code"><code class="language-python hljs  has-numbering"><span class="hljs-comment"># -*- coding:utf-8 -*-</span>
<span class="hljs-keyword">import</span> scrapy

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">QuotesSpider</span><span class="hljs-params">(scrapy.Spider)</span>:</span>
    name = <span class="hljs-string">'quotes'</span>

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">start_requests</span><span class="hljs-params">(self)</span>:</span>
        urls = [
            <span class="hljs-string">'http://quotes.toscrape.com/page/1/'</span>,
            <span class="hljs-string">'http://quotes.toscrape.com/page/2/'</span>
        ]
        <span class="hljs-keyword">for</span> url <span class="hljs-keyword">in</span> urls:
            <span class="hljs-keyword">yield</span> scrapy.Request(url= urls, callback=self.parse)

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">parse</span><span class="hljs-params">(self, response)</span>:</span>
        page = response.url.split(<span class="hljs-string">'/'</span>)[-<span class="hljs-number">2</span>]
        fileName = <span class="hljs-string">'quotes-%s.html'</span> % page
        <span class="hljs-comment">#打开文件</span>
        <span class="hljs-keyword">with</span> open(fileName, <span class="hljs-string">'wb'</span>) <span class="hljs-keyword">as</span> f:
            f.write(response.body)
        self.log(<span class="hljs-string">'saved file %s '</span> % fileName)</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li></ul></pre>

<p>如上所见，我们的Spider 继承了<strong>scrapy.Spider</strong>并且定义了一些属性和方法:</p>

<p></p><ul> <br>
<li>name: 识别spider，它在项目中必须是唯一的，也就是不可以为不同的spider设置相同的<strong>name</strong>值。</li>
<li>start_requests():必须放回一个可迭代的Requests（你可以直接返回一个Requests的里列表也可以写一个生成器函数），Spider将会从返回的Requests中开始爬取。将从这些初始请求连续生成后续请求。</li>
<li>parse():默认用来回调处理请求响应的方法。response 参数是一个TextResponse的实例，它保存着页面的内容我们会有很多方法来处理它。 <br></li></ul><p></p>

<blockquote>
  parse()方法通常用来解析响应，从抓取的数据中提取为dicts,并查找到要跟踪的新的url并创建请求。
  
  </blockquote>


<h3 id="怎么运行spider"><a name="t3" target="_blank"></a>怎么运行Spider</h3>

<p>在项目的根目录下输入一下命令</p>

<blockquote>
  <p>scrapy crawl quotes</p>
</blockquote>

<p>这个命令将运行我们刚才添加并且**设置name属性为‘quotes’的spider，它将向<a href="http://quotes.toscrape.com/" target="_blank">quotes.toscrape.com</a>发送一些请求，我们可以看到类似以下的输出:</p>



<pre class="prettyprint" name="code"><code class="hljs avrasm has-numbering"><span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">26</span> <span class="hljs-number">22</span>:<span class="hljs-number">49</span>:<span class="hljs-number">17</span> [scrapy<span class="hljs-preprocessor">.core</span><span class="hljs-preprocessor">.engine</span>] DEBUG: Crawled (<span class="hljs-number">200</span>) &lt;GET http://quotes<span class="hljs-preprocessor">.toscrape</span><span class="hljs-preprocessor">.com</span>/page/<span class="hljs-number">1</span>/&gt; (referer: None)
<span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">26</span> <span class="hljs-number">22</span>:<span class="hljs-number">49</span>:<span class="hljs-number">17</span> [quotes] DEBUG: Saved file quotes-<span class="hljs-number">1.</span>html
<span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">26</span> <span class="hljs-number">22</span>:<span class="hljs-number">49</span>:<span class="hljs-number">17</span> [scrapy<span class="hljs-preprocessor">.core</span><span class="hljs-preprocessor">.engine</span>] DEBUG: Crawled (<span class="hljs-number">200</span>) &lt;GET http://quotes<span class="hljs-preprocessor">.toscrape</span><span class="hljs-preprocessor">.com</span>/page/<span class="hljs-number">2</span>/&gt; (referer: None)
<span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">26</span> <span class="hljs-number">22</span>:<span class="hljs-number">49</span>:<span class="hljs-number">17</span> [quotes] DEBUG: Saved file quotes-<span class="hljs-number">2.</span>html
<span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">26</span> <span class="hljs-number">22</span>:<span class="hljs-number">49</span>:<span class="hljs-number">17</span> [scrapy<span class="hljs-preprocessor">.core</span><span class="hljs-preprocessor">.engine</span>] INFO: Closing spider (finished)</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul></pre>

<p>现在查看项目的根目录，我们可以看到两个新的文件<strong>quotes-1.html</strong>和<strong>quotes-2.html</strong>被创建，可以参照我们<strong>parse</strong>方法中的解析。</p>



<h4 id="刚刚发生了什么"><a name="t4" target="_blank"></a>刚刚发生了什么？</h4>

<p>Scrapy根据由Spider的start_requests方法返回的scrapy.Request对象。 在接收到每个响应时，它实例化Response对象并调用与请求相关联的回调方法（在本例中为parse方法），将响应作为参数传递。</p>



<h3 id="startrequests-方法的快捷方式"><a name="t5" target="_blank"></a>start_requests 方法的快捷方式</h3>

<p>通常情况下我们可以设置一个<strong>包含URL列表的类属性start_urls</strong>来替代重写start_requests()方法。然后，此列表将由默认实现的start_requests（）用于为我们的Spider创建初始请求。 <br>
因此我们可以简化代码如下：</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-comment"># -*- coding:utf-8 -*-</span>
<span class="hljs-keyword">import</span> scrapy

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">QuotesSpider</span><span class="hljs-params">(scrapy.Spider)</span>:</span>
    name = <span class="hljs-string">'quotes'</span>
    <span class="hljs-comment">#设置 start_urls 属性，替代实现 start_requests()</span>
    start_urls = [
         <span class="hljs-string">'http://quotes.toscrape.com/page/1/'</span>,
         <span class="hljs-string">'http://quotes.toscrape.com/page/2/'</span>,
    ]

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">parse</span><span class="hljs-params">(self, response)</span>:</span>
        page = response.url.split(<span class="hljs-string">"/"</span>)[-<span class="hljs-number">2</span>]
        filename = <span class="hljs-string">'quotes-%s.html'</span> % page
        <span class="hljs-keyword">with</span> open(filename, <span class="hljs-string">'wb'</span>) <span class="hljs-keyword">as</span> f:
            f.write(response.body)
        self.log(<span class="hljs-string">'Saved file %s'</span> % filename)</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li></ul></pre>

<p>parse（）方法将被处理每个请求的那些URL，即使我们没有明确告诉Scrapy这样做。 发生这种情况是因为parse（）是Scrapy的默认回调方法，它被没有显式分配回调的请求调用。</p>



<h2 id="提取数据"><a name="t6" target="_blank"></a>提取数据</h2>

<p>最好的学习通过Scrapy提取数据就是尝试使用<strong>Scrapy Shell 选择器</strong>。</p>

<blockquote>
  <p>scrapy shell “<a href="http://quotes.toscrape.com/page/1/" target="_blank">http://quotes.toscrape.com/page/1/</a>”</p>
</blockquote>

<p>运行命令将会看到如下输出</p>



<pre class="prettyprint" name="code"><code class="hljs coffeescript has-numbering">···
[s]   response   &lt;<span class="hljs-number">200</span> <span class="hljs-attribute">http</span>:<span class="hljs-regexp">//</span>quotes.toscrape.com<span class="hljs-regexp">/page/1/</span>&gt;
[s]   settings   &lt;scrapy.settings.Settings object at <span class="hljs-number">0x7fa91d888c10</span>&gt;
[s]   spider     &lt;DefaultSpider <span class="hljs-string">'default'</span> at <span class="hljs-number">0x7fa91c8af990</span>&gt;
[s] Useful <span class="hljs-attribute">shortcuts</span>:
[s]   shelp()           Shell help (<span class="hljs-built_in">print</span> <span class="hljs-keyword">this</span> help)
[s]   fetch(req_or_url) Fetch request (<span class="hljs-keyword">or</span> URL) <span class="hljs-keyword">and</span> update local objects
[s]   view(response)    View response <span class="hljs-keyword">in</span> a browser</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li></ul></pre>

<p>利用 shell，我们可以利用 CSS 从 返回的response对象中选择节点。</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title"</span>)
[&lt;Selector xpath=<span class="hljs-string">u'descendant-or-self::title'</span> data=<span class="hljs-string">u'&lt;title&gt;Quotes to Scrape&lt;/title&gt;'</span>&gt;]</code><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre>

<p>运行<strong>response.css(“title”)</strong>返回的是一个类似列表的<strong>SelectorList</strong>,其中包含了HTML元素的选择器对象，允许我们进一步更加精细的选择和提取数据。 <br>
要从上边的title中提取文本，可以做如下操作：</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title::text"</span>).extract()
[<span class="hljs-string">u'Quotes to Scrape'</span>]</code><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre>

<p>这里有两点是我们需要注意的： <br>
1. 我们通过添加<strong>::text</strong>到CSS查询来表明我们希望选择器在&lt;title&gt;元素中选择文本元素,如果我们不添加<strong>::text</strong>,我们将会得到包含tag的整个title元素。</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title"</span>).extract()
[<span class="hljs-string">u'&lt;title&gt;Quotes to Scrape&lt;/title&gt;'</span>]</code><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre>

<ol>
<li>我们注意到<strong>extract()</strong>返回的结果是列表，因为我们正在处理的是一个<strong>SelectorList</strong>实例。如果我们只想要第一个结果呢，我们使用<strong>extract_first()</strong>。</li>
</ol>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title::text"</span>).extract_first()
<span class="hljs-string">u'Quotes to Scrape'</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre>

<p>当然我们还有另外一种写法</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title::text"</span>)[<span class="hljs-number">0</span>].extract()
<span class="hljs-string">u'Quotes to Scrape'</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre>

<blockquote>
  <p><font color="#D63737">注意</font> <br>
  我们是更提倡使用<strong>extract_first()</strong>的，可以避免发生<strong>IndexError</strong>,并且在匹配不到任何元素的时候会返回<strong>None</strong>。 <br>
  这里有一个教训：对于我们的爬虫代码，我们应该尽量设计的对于错误是由弹性的，这样即使一部份页面爬取失败，我们依然可以成功的爬取一些数据。</p>
</blockquote>

<p>除了<strong>extract()</strong>和<strong>extract_first()</strong>外，我们还可以使用<strong>re()</strong>利用正则表达式来提取：</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title::text"</span>).re(<span class="hljs-string">r'Quotes.*'</span>)
[<span class="hljs-string">u'Quotes to Scrape'</span>]
<span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title::text"</span>).re(<span class="hljs-string">r'Q\w+'</span>)
[<span class="hljs-string">u'Quotes'</span>]
<span class="hljs-prompt">&gt;&gt;&gt; </span>response.css(<span class="hljs-string">"title::text"</span>).re(<span class="hljs-string">r'(\w+) to (\w+)'</span>)
[<span class="hljs-string">u'Quotes'</span>, <span class="hljs-string">u'Scrape'</span>]</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul></pre>

<p>在爬取一个比较复杂的页面时，如何找出有效的CSS选择器也是一个很大的挑战，这个时候我们一般都需要利用一些工具，比如浏览器的View视图。</p>



<h4 id="xpath小介绍"><a name="t7" target="_blank"></a>XPath小介绍</h4>

<p>除了CSS,Scrapy选择器也支持通过XPath表达式：</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.xpath(<span class="hljs-string">"//title"</span>)
[&lt;Selector xpath=<span class="hljs-string">'//title'</span> data=<span class="hljs-string">u'&lt;title&gt;Quotes to Scrape&lt;/title&gt;'</span>&gt;]
<span class="hljs-prompt">&gt;&gt;&gt; </span>response.xpath(<span class="hljs-string">"//title/text()"</span>).extract_first()
<span class="hljs-string">u'Quotes to Scrape'</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li></ul></pre>

<p>XPath表达式非常强大，是Scrapy选择器的基础，事实上如果你仔细观察shell中输入的文本可以发现CSS最后是转换成XPath的。</p>

<p>虽然不及CSS选择器那么流行，但是XPath提供了更强大的功能，因为除了导航结构之外，它还可以查看内容。 
使用XPath，您可以选择以下内容：选择包含文本“下一页”的链接。 
这使得XPath非常适合于抓取任务，我们鼓励你学习XPath，即使你已经知道如何构建CSS选择器。</p>

<p>我们这里不再学习更过的关于XPath的内容，更多的内容大家可以到<a href="http://www.w3school.com.cn/xpath/index.asp" target="_blank">W3School学习</a>,这里有很详细的教程。</p>



<h4 id="提取名言和作者"><a name="t8" target="_blank"></a>提取名言和作者</h4>

<p>现在你知道了一点关于选择和提取，让我们通过编写代码从网页中提取名言来完成我们的爬虫。</p>

<p>一部分从 <a href="http://quotes.toscrape.com/" target="_blank">http://quotes.toscrape.com</a> 中返回到的HTML元素如下：</p>



<pre class="prettyprint" name="code"><code class="language-html hljs  has-numbering"><span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"quote"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">span</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"text"</span>&gt;</span>“The world as we have created it is a process of our
    thinking. It cannot be changed without changing our thinking.”<span class="hljs-tag">&lt;/<span class="hljs-title">span</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">span</span>&gt;</span>
        by <span class="hljs-tag">&lt;<span class="hljs-title">small</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"author"</span>&gt;</span>Albert Einstein<span class="hljs-tag">&lt;/<span class="hljs-title">small</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/author/Albert-Einstein"</span>&gt;</span>(about)<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-title">span</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">div</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"tags"</span>&gt;</span>
        Tags:
        <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"tag"</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/tag/change/page/1/"</span>&gt;</span>change<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"tag"</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/tag/deep-thoughts/page/1/"</span>&gt;</span>deep-thoughts<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"tag"</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/tag/thinking/page/1/"</span>&gt;</span>thinking<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"tag"</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/tag/world/page/1/"</span>&gt;</span>world<span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">div</span>&gt;</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li></ul></pre>

<p>让我们继续使用我们的<strong>Scrapy Shell</strong>来看看如何提取我们感兴趣的内容：</p>



<pre class="prettyprint" name="code"><code class="hljs applescript has-numbering">&gt;&gt;&gt; response.xpath('<span class="hljs-keyword">div</span>[@<span class="hljs-type">class</span>=<span class="hljs-string">"quote"</span>]')</code><ul class="pre-numbering" style=""><li>1</li></ul></pre>

<p>我们将得到一个列表的HTML元素的选择器。</p>

<p>通过上面的查询返回的每个选择器允许我们对它们的子元素执行进一步的查询。 让我们将第一个选择器分配给一个变量，以便我们可以直接对特定的引用运行我们的XPath选择器：</p>



<pre class="prettyprint" name="code"><code class="hljs erlang has-numbering">quote = response.xpath('//<span class="hljs-keyword">div</span>[@class=<span class="hljs-string">"quote"</span>]')[<span class="hljs-number">0</span>]</code><ul class="pre-numbering" style=""><li>1</li></ul></pre>

<p>现在我们将从刚刚创建的<strong>quote</strong>对象中提取名言，作者及标签：</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>quote.xpath(<span class="hljs-string">'span[@class="text"]/text()'</span>).extract_first()
<span class="hljs-string">u'\u201cThe world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.\u201d'</span>
<span class="hljs-prompt">&gt;&gt;&gt; </span>quote.xpath(<span class="hljs-string">'span/small[@class="author"]/text()'</span>).extract_first()
<span class="hljs-string">u'Albert Einstein'</span>
<span class="hljs-prompt">&gt;&gt;&gt; </span>quote.xpath(<span class="hljs-string">'div/a[@class="tag"]/text()'</span>).extract()
[<span class="hljs-string">u'change'</span>, <span class="hljs-string">u'deep-thoughts'</span>, <span class="hljs-string">u'thinking'</span>, <span class="hljs-string">u'world'</span>]</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li></ul></pre>

<p>因为标签是有多个的我们用<strong>extract()</strong>一次性将标签全部取出来，现在我们已经知道如何从一个节点中提取我们想要的内容，下一步我们就利用循环将所有节点的内容都提取出来。</p>



<h3 id="在我们的爬虫提取数据"><a name="t9" target="_blank"></a>在我们的爬虫提取数据</h3>

<p>让我们回到我们的爬虫项目。 到目前为止，它不会提取任何特别的数据，只是将整个HTML页面保存到本地文件。 让我们将上面的提取逻辑集成到我们的爬虫中。</p>

<p>Scrapy Spider 通常会生成许多从页面中提取的数据组成的字典，因此我们使用Python yield 关键字(防止一次生成大量字典占用过多内存)</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-comment"># -*- coding:utf-8 -*-</span>
<span class="hljs-keyword">import</span> scrapy

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">QuotesSpider</span><span class="hljs-params">(scrapy.Spider)</span>:</span>
    name = <span class="hljs-string">'quotes'</span>
    <span class="hljs-comment">#设置 start_urls 属性，替代实现 start_requests()</span>
    start_urls = [
         <span class="hljs-string">'http://quotes.toscrape.com/page/1/'</span>,
         <span class="hljs-string">'http://quotes.toscrape.com/page/2/'</span>,
    ]

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">parse</span><span class="hljs-params">(self, response)</span>:</span>
        <span class="hljs-keyword">for</span> quote <span class="hljs-keyword">in</span> response.xpath(<span class="hljs-string">'//div[@class="quote"]'</span>):
            <span class="hljs-keyword">yield</span> {
                <span class="hljs-string">'text'</span>: quote.xpath(<span class="hljs-string">'span[@class="text"]/text()'</span>).extract_first(),
                <span class="hljs-string">'author'</span>: quote.xpath(<span class="hljs-string">'span/small[@class="author"]/text()'</span>).extract_first(),
                <span class="hljs-string">'tags'</span>: quote.xpath(<span class="hljs-string">'div/a[@class="tag"]/text()'</span>).extract(),
            }</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li></ul></pre>

<p>如果我运行该程序，我们将会看到类似以下的输出：</p>



<pre class="prettyprint" name="code"><code class="hljs ruby has-numbering"><span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">27</span> <span class="hljs-number">14</span><span class="hljs-symbol">:</span><span class="hljs-number">39</span><span class="hljs-symbol">:</span><span class="hljs-number">29</span> [scrapy.core.scraper] <span class="hljs-constant">DEBUG</span><span class="hljs-symbol">:</span> <span class="hljs-constant">Scraped</span> from &lt;<span class="hljs-number">200</span> <span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/quotes.toscrape.com/page</span><span class="hljs-regexp">/1/</span>&gt;
{<span class="hljs-string">'text'</span><span class="hljs-symbol">:</span> u<span class="hljs-string">'\u201cThe world as we have created it is a process of our thinking. It cannot be changed without changing our thinking.\u201d'</span>, <span class="hljs-string">'tags'</span><span class="hljs-symbol">:</span> [u<span class="hljs-string">'change'</span>, u<span class="hljs-string">'deep-thoughts'</span>, u<span class="hljs-string">'thinking'</span>, u<span class="hljs-string">'world'</span>], <span class="hljs-string">'autho
r'</span><span class="hljs-symbol">:</span> u<span class="hljs-string">'Albert Einstein'</span>}
<span class="hljs-number">2017</span>-<span class="hljs-number">02</span>-<span class="hljs-number">27</span> <span class="hljs-number">14</span><span class="hljs-symbol">:</span><span class="hljs-number">39</span><span class="hljs-symbol">:</span><span class="hljs-number">29</span> [scrapy.core.scraper] <span class="hljs-constant">DEBUG</span><span class="hljs-symbol">:</span> <span class="hljs-constant">Scraped</span> from &lt;<span class="hljs-number">200</span> <span class="hljs-symbol">http:</span>/<span class="hljs-regexp">/quotes.toscrape.com/page</span><span class="hljs-regexp">/1/</span>&gt;
{<span class="hljs-string">'text'</span><span class="hljs-symbol">:</span> u<span class="hljs-string">'\u201cIt is our choices, Harry, that show what we truly are, far more than our abilities.\u201d'</span>, <span class="hljs-string">'tags'</span><span class="hljs-symbol">:</span> [u<span class="hljs-string">'abilities'</span>, u<span class="hljs-string">'choices'</span>], <span class="hljs-string">'author'</span><span class="hljs-symbol">:</span> u<span class="hljs-string">'J.K. Rowling'</span>}</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul></pre>



<h2 id="存储爬取到的数据"><a name="t10" target="_blank"></a>存储爬取到的数据</h2>

<p>最简单的办法就是利用<strong>Feed exports</strong>，可以用下面的命令：</p>



<pre class="prettyprint" name="code"><code class="hljs scss has-numbering">scrapy crawl <span class="hljs-attribute">quotes</span> -o <span class="hljs-attribute">quotes</span><span class="hljs-class">.json</span></code><ul class="pre-numbering" style=""><li>1</li></ul></pre>

<p>这将生成一个quotes.json文件，其中包含所有被抓取的项目，以JSON序列化。</p>

<blockquote>
  <p>提示 <br>
  Scrapy 会将爬取的内容附加到给定的文件，而不是覆盖原文件，因此在抓取数据的时候一定要确保生成文件是不存在的。</p>
</blockquote>

<p>在小项目（如本教程）中，这应该足够了。 但是，如果要对已爬取的项目执行更复杂的操作，则可以编写项目管道。 在创建项目时，已经在<strong>tutorial / pipelines.py</strong>中创建了项目管道的占位文件。 如果你只想存储被抓取的项目，你不需要实现任何项目管道。</p>



<h2 id="跟随链接"><a name="t11" target="_blank"></a>跟随链接</h2>

<p>让我们接着看，现在我们不仅想提取 <a href="http://quotes.toscrape.com/" target="_blank">http://quotes.toscrape.com</a> 的前两页，我们想提取整个网站所有网网页的内容？ <br>
现在我们已经知道如何从页面中提取数据，让我们看看如何跟踪他们的链接。 <br>
首先是提取我们要关注的网页的链接。 检查我们的页面，我们可以看到有一个链接到下一页的标记。</p>



<pre class="prettyprint" name="code"><code class="language-html hljs  has-numbering"><span class="hljs-tag">&lt;<span class="hljs-title">ul</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"pager"</span>&gt;</span>
    <span class="hljs-tag">&lt;<span class="hljs-title">li</span> <span class="hljs-attribute">class</span>=<span class="hljs-value">"next"</span>&gt;</span>
        <span class="hljs-tag">&lt;<span class="hljs-title">a</span> <span class="hljs-attribute">href</span>=<span class="hljs-value">"/page/2/"</span>&gt;</span>Next <span class="hljs-tag">&lt;<span class="hljs-title">span</span> <span class="hljs-attribute">aria-hidden</span>=<span class="hljs-value">"true"</span>&gt;</span>-&gt;<span class="hljs-tag">&lt;/<span class="hljs-title">span</span>&gt;</span><span class="hljs-tag">&lt;/<span class="hljs-title">a</span>&gt;</span>
    <span class="hljs-tag">&lt;/<span class="hljs-title">li</span>&gt;</span>
<span class="hljs-tag">&lt;/<span class="hljs-title">ul</span>&gt;</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li></ul></pre>

<p>我们可以尝试在shell中提取该链接：</p>



<pre class="prettyprint" name="code"><code class="hljs python has-numbering"><span class="hljs-prompt">&gt;&gt;&gt; </span>response.xpath(<span class="hljs-string">'//li[@class="next"]/a/@href'</span>).extract_first()
<span class="hljs-string">u'/page/2/'</span></code><ul class="pre-numbering" style=""><li>1</li><li>2</li></ul></pre>

<p>现在我们的爬虫被修改为递归地跟随到下一页的链接，从中提取数据。</p>



<pre class="prettyprint" name="code"><code class="language-Python hljs python has-numbering"><span class="hljs-comment"># -*- coding:utf-8 -*-</span>
<span class="hljs-keyword">import</span> scrapy

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">QuotesSpider</span><span class="hljs-params">(scrapy.Spider)</span>:</span>
    name = <span class="hljs-string">'quotes'</span>
    <span class="hljs-comment">#设置 start_urls 属性，替代实现 start_requests()</span>
    start_urls = [
         <span class="hljs-string">'http://quotes.toscrape.com/page/1/'</span>,
         <span class="hljs-string">'http://quotes.toscrape.com/page/2/'</span>,
    ]

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">parse</span><span class="hljs-params">(self, response)</span>:</span>
        <span class="hljs-keyword">for</span> quote <span class="hljs-keyword">in</span> response.xpath(<span class="hljs-string">'//div[@class="quote"]'</span>):
            <span class="hljs-keyword">yield</span> {
                <span class="hljs-string">'text'</span>: quote.xpath(<span class="hljs-string">'span[@class="text"]/text()'</span>).extract_first(),
                <span class="hljs-string">'author'</span>: quote.xpath(<span class="hljs-string">'span/small[@class="author"]/text()'</span>).extract_first(),
                <span class="hljs-string">'tags'</span>: quote.xpath(<span class="hljs-string">'div/a[@class="tag"]/text()'</span>).extract(),
            }
        next_page = response.xpath(<span class="hljs-string">'//li[@class="next"]/a/@href'</span>).extract_first()
        <span class="hljs-keyword">if</span> next_page <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">None</span>:
            <span class="hljs-comment">#添加域名前缀</span>
            next_page = response.urljoin(next_page)
            <span class="hljs-comment">#递归提取下一页</span>
            <span class="hljs-keyword">yield</span> scrapy.Request(url= next_page, callback= self.parse)</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li></ul></pre>

<p>在提取完数据以后，parse()方法寻找到下一页的链接，并通过<strong>urljoin()</strong>方法构造一个完整的url地址，并产生一个新的请求到下一页， 将其自身注册为回调以处理下一页的数据提取，并保持抓取知道最后的页面。</p>

<p>在这里我们可以看到Scrapy的链接机制：当你在回调方法中产生一个请求时，Scrapy会调度要发送的请求，并注册一个回调方法，以在该请求完成时执行解析。</p>

<p>使用此功能，您可以根据定义的规则构建复杂的抓取工具，并根据访问的网页提取不同类型的数据。</p>

<p>在我们的例子中，我们创建一个循环不断的提取下一页的链接并解析，一直到尾页。</p>



<h3 id="更多的例子"><a name="t12" target="_blank"></a>更多的例子</h3>

<p>这是另一个爬虫，声明的初始地址很追随链接的规则，这次我们来爬取作者的信息：</p>



<pre class="prettyprint" name="code"><code class="language-Python hljs python has-numbering"><span class="hljs-comment"># -*- coding:utf-8 -*-</span>
<span class="hljs-comment">#爬取作者信息</span>

<span class="hljs-keyword">import</span> scrapy

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">AuthorSpider</span><span class="hljs-params">(scrapy.Spider)</span>:</span>
    name = <span class="hljs-string">'author'</span>
    start_urls = [<span class="hljs-string">'http://quotes.toscrape.com/'</span>]
    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">parse</span><span class="hljs-params">(self, response)</span>:</span>
        <span class="hljs-comment">#作者信息的链接</span>
        <span class="hljs-keyword">for</span> author <span class="hljs-keyword">in</span> response.xpath(<span class="hljs-string">'//div[@class="quote"]'</span>):
            info_page = author.xpath(<span class="hljs-string">'span/a/@href'</span>).extract_first()
            <span class="hljs-keyword">print</span> info_page
            <span class="hljs-keyword">yield</span> scrapy.Request(url=response.urljoin(info_page), callback= self.author_parse)
        <span class="hljs-comment">#查询下一页</span>
        next_page = response.xpath(<span class="hljs-string">'//li[@class="next"]/a/@href'</span>).extract_first()
        <span class="hljs-keyword">if</span> next_page <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">None</span>:
            <span class="hljs-keyword">yield</span> scrapy.Request(url= response.urljoin(next_page), callback= self.parse)
    <span class="hljs-comment">#解析作者信息</span>
    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">author_parse</span><span class="hljs-params">(self, response)</span>:</span>
        <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">extract_width_xpath</span><span class="hljs-params">(query)</span>:</span>
            <span class="hljs-keyword">return</span> response.xpath(query).extract_first()

        <span class="hljs-keyword">yield</span> {
            <span class="hljs-string">'name'</span>: extract_width_xpath(<span class="hljs-string">'//h3[@class="author-title"]/text()'</span>),
            <span class="hljs-string">'birthday'</span>:extract_width_xpath(<span class="hljs-string">'//span[@class="author-born-date"]/text()'</span>),
            <span class="hljs-string">'location'</span>: extract_width_xpath(<span class="hljs-string">'//span[@class="author-born-location"]/text()'</span>),
        }</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li><li>26</li><li>27</li><li>28</li></ul></pre>

<p>这个爬虫会从主页面开始，跟随所有指向作者信息页的链接并回调<strong>author_parse</strong>提取信息，同时还有分页回调的分页链接，正如我们前面做的。</p>

<blockquote>
  <p>一个需要我们注意的点是：这个爬虫演示中，即使有很多来url指向同一个作者，我们也不需要担心访问同一作者页多次。 默认情况下，Scrapy会过滤掉已访问过的网址的重复请求，从而避免由于编程错误而导致服务器过多的问题。 这可以通过设置<strong>DUPEFILTER_CLASS</strong>进行配置。</p>
</blockquote>

<p>希望现在你对如何使用Scrapy的链接和回调的机制有一个很好的理解。</p>



<h2 id="使用spider参数"><a name="t13" target="_blank"></a>使用Spider参数</h2>

<p>在运行它们时，可以使用-a选项为我们的爬虫提供命令行参数:</p>



<pre class="prettyprint" name="code"><code class="hljs lasso has-numbering">scrapy crawl quotes <span class="hljs-attribute">-o</span> quotes<span class="hljs-attribute">-humor</span><span class="hljs-built_in">.</span>json <span class="hljs-attribute">-a</span> <span class="hljs-built_in">tag</span><span class="hljs-subst">=</span>humor</code><ul class="pre-numbering" style=""><li>1</li></ul></pre>

<p>这些参数传递给Spider的<strong>init</strong>方法，默认情况下成为spider属性。 <br>
在此示例中，为tag参数提供的值将通过self.tag提供。 我们可以使用它来使我们的爬虫仅抓取带有特定标记的句子，根据参数构建网址：</p>



<pre class="prettyprint" name="code"><code class="language-Python hljs python has-numbering"><span class="hljs-comment"># -*- coding:utf-8 -*-</span>
<span class="hljs-keyword">import</span> scrapy

<span class="hljs-class"><span class="hljs-keyword">class</span> <span class="hljs-title">QuotesSpider</span><span class="hljs-params">(scrapy.Spider)</span>:</span>
    name = <span class="hljs-string">'quotes_tag'</span>

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">start_requests</span><span class="hljs-params">(self)</span>:</span>
        url = <span class="hljs-string">'http://quotes.toscrape.com/'</span>
        tag = getattr(self, <span class="hljs-string">'tag'</span>, <span class="hljs-keyword">None</span>)
        <span class="hljs-keyword">if</span> tag <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">None</span>:
            <span class="hljs-comment">#根据输入的参数构建url</span>
            url = url + <span class="hljs-string">'tag/'</span> + tag
        <span class="hljs-keyword">yield</span> scrapy.Request(url, self.parse)

    <span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">parse</span><span class="hljs-params">(self, response)</span>:</span>
        <span class="hljs-keyword">for</span> quote <span class="hljs-keyword">in</span> response.xpath(<span class="hljs-string">'//div[@class="quote"]'</span>):
            <span class="hljs-keyword">yield</span> {
                <span class="hljs-string">'text'</span>: quote.xpath(<span class="hljs-string">'span[@class="text"]/text()'</span>).extract_first(),
                <span class="hljs-string">'author'</span>: quote.xpath(<span class="hljs-string">'span/small[@class="author"]/text()'</span>).extract_first(),
            }
        next_page = response.xpath(<span class="hljs-string">'//li[@class="next"]/a/@href'</span>).extract_first()
        <span class="hljs-keyword">if</span> next_page <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> <span class="hljs-keyword">None</span>:
            <span class="hljs-comment">#添加域名前缀</span>
            next_page = response.urljoin(next_page)
            <span class="hljs-keyword">yield</span> scrapy.Request(url= next_page, callback= self.parse)</code><ul class="pre-numbering" style=""><li>1</li><li>2</li><li>3</li><li>4</li><li>5</li><li>6</li><li>7</li><li>8</li><li>9</li><li>10</li><li>11</li><li>12</li><li>13</li><li>14</li><li>15</li><li>16</li><li>17</li><li>18</li><li>19</li><li>20</li><li>21</li><li>22</li><li>23</li><li>24</li><li>25</li></ul></pre>

<p>如果我们向爬虫输入<strong>tag=humor</strong>参数，可以看到它只会访问标记中的网址，例如<a href="http://quotes.toscrape.com/tag/humor" target="_blank">http://quotes.toscrape.com/tag/humor</a></p>

<p>在之后我们会学习更多关于Spider参数的知识。</p>

<p>到现在为止，我们通过几个例子学习了一些Scrapy的基础知识，可以爬取一些简单的数据，当然这远远不是Scrapy的全部，我们会继续朝下学习的。</p>            </div>
                        <link rel="stylesheet" href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/markdown_views-68a8aad09e.css">
                                <script>
                $(".MathJax").remove();
            </script>
            <script type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/MathJax.js"></script>
        </div>
        <div class="readall_box csdn-tracking-statistics tracking-click readall_box_nobg" data-pid="blog" data-mod="popu_596" style="display: none;">
        <div class="read_more_mask"></div>
            <a class="btn btn-large btn-gray-fred read_more_btn" target="_self">阅读全文</a>
        </div>
        <ul class="article_next_prev">
                                    <li class="prev_article">
                <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian']);location.href='//blog.csdn.net/ygl_smile/article/details/56958775';">上一篇</span>
                <a href="http://blog.csdn.net/ygl_smile/article/details/56958775" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_shangyipian'])">Scrapy 1.3.2 - 安装</a>
            </li>
            
                                    <li class="next_article">
                <span onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian']);location.href='//blog.csdn.net/ygl_smile/article/details/58246286';">下一篇</span>
                <a href="http://blog.csdn.net/ygl_smile/article/details/58246286" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_xiayipian'])">Scrapy 1.3.2 - Spider的全面认识</a>
            </li>
                    </ul>
        <div style="clear:both; height:10px;"></div>
    </div>

        <!--文章底部广告位-->
    <div id="article_ad">
        <!-- 广告位：PC端-博客详情页底部banner-760*90 -->
        <div id="_746599w6ht"><div style="padding-top:0px;"><div style="padding-bottom:0px;"><div><span style="display:none;"></span><iframe scrolling="no" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/s.html" width="760" height="90" frameborder="0"></iframe><span style="display:none;margin-bottom:0px;"></span></div></div></div></div><script type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pkccmgslc.js"></script>
    </div>
    
    <!--评论区-->
    <div class="comment_class">
        <div class="commentform" id="comments"></div>
        <div id="comment_form"><div class="guest_link">您还没有登录,请<a href="https://passport.csdn.net/account/login?from=http%3A%2F%2Fblog.csdn.net%2Fygl_smile%2Farticle%2Fdetails%2F58137421">[登录]</a>或<a href="https://passport.csdn.net/account/register?from=http%3A%2F%2Fblog.csdn.net%2Fygl_smile%2Farticle%2Fdetails%2F58137421">[注册]</a></div></div>
        <div id="comment_title" class="panel_head" style="display: none;">
            <span class="see_comment">查看评论</span><a name="comments"></a></div>
        <div id="comment_list" style="display: none;"><br>&nbsp;&nbsp;暂无评论<br><br><div class="clear"></div></div>
        <div id="comment_bar">
        </div>
    </div>

    <!--推荐列表-->
    <div class="recommend_list">
                                            <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="true" data-dsm="post">
                <a href="http://blog.csdn.net/Oscer2016/article/details/78007472" target="_blank" strategy="BlogCommendFromBaidu_0">
                    <dd>
                        <h2>Scrapy简明教程(二)——开启Scrapy爬虫项目之旅</h2>
                        <div class="summary">
                            1. 启动项目:  安装好 Scrapy 以后， 我们可以运行 startproject
 命令生成该项目的默认结构。具体步骤为: 打开终端进入想要存储 Scrapy 项目的目录，然后运行 scrapy...             
           </div>

                        <ul>
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_oscer2016.jpg" alt="Oscer2016" title="Oscer2016"></li>
                            <li class="user_name">Oscer2016</li>
                            <li class="time">2017年09月16日 23:09</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1744</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="true" data-dsm="post">
                <a href="http://blog.csdn.net/woodenrobot/article/details/53967636" target="_blank" strategy="BlogCommendFromBaidu_1">
                    <dd>
                        <h2>scrapy爬虫框架教程（一）-- Scrapy入门</h2>
                        <div class="summary">
                            博客文章地址：scrapy爬虫框架教程（一）– 
Scrapy入门前言转行做python程序员已经有三个月了，这三个用Scrapy爬虫框架写了两百多个爬虫，不能说精通了Scrapy，但是已经对
Scrap...                        </div>

                        <ul>
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_woodenrobot.jpg" alt="woodenrobot" title="woodenrobot"></li>
                            <li class="user_name">woodenrobot</li>
                            <li class="time">2017年01月01日 18:52</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>413</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                          <dl class="">
            <script>
            (function() {
              var s = "_" + Math.random().toString(36).slice(2);
              document.write('<div id="' + s + '"></div>');
              (window.slotbydup=window.slotbydup || []).push({
                id: '4765209',
                container: s,
                size: '808,120',
                display: 'inlay-fix'
              });
            })();
            </script><div id="_02p85ez6b9hq"></div><script charset="utf-8" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/tcxm.js"></script><iframe style="width: 100%; height: 89px; border: 0px none;" scrolling="no"></iframe>
          </dl>
                                        <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/a735311619/article/details/77488576" target="_blank" strategy="BlogCommendFromBaidu_2">
                    <dd>
                        <h2 style="margin-bottom: 0px;">python爬虫-下载图片到本地目录</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_a735311619.jpg" alt="a735311619" title="a735311619"></li>
                            <li class="user_name">a735311619</li>
                            <li class="time">2017年08月22日 22:14</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>347</span></li>
                        </ul><div class="summary">
                            import requests
import os
url = "https://ss0.bdstatic.com/5aV1bjqh_Q23odCf/static/superman/img/logo/...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/unmawenjia/9743940" target="_blank" strategy="BlogCommendFromBaidu_3">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>scrapy官方手册中文 高清完整.pdf版下载</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2017年01月23日 22:48</li>
                                    <li class="visited_num fileSize">33.48MB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pdf.svg" alt="" title=""></dt>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/hi_chen_xingwang/9644418" target="_blank" strategy="BlogCommendFromBaidu_4">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>scrapy 中文教程</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2016年10月01日 11:56</li>
                                    <li class="visited_num fileSize">633KB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/unkonw.svg" alt="" title=""></dt>
                </a>
            </dl>
                                                    <dl id="yd_a_d_feed_6" class="yd_a_d_feed_cla" style="height:124px;"><iframe style="width: 100%; height: 90px; border: 0px none;" scrolling="no"></iframe></dl><dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/u012150179/article/details/32343635" target="_blank" strategy="BlogCommendFromBaidu_5">
                    <dd>
                        <h2 style="margin-bottom: 0px;">Scrapy研究探索（一）——基础入门</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_u012150179.jpg" alt="u012150179" title="u012150179"></li>
                            <li class="user_name">u012150179</li>
                            <li class="time">2014年06月19日 20:52</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>26113</span></li>
                        </ul><div class="summary">
                            一.Scrapy介绍
二.知识准备
三.                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/baidu_31089219/10253511" target="_blank" strategy="BlogCommendFromBaidu_6">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>Scrapy-1.0.5中文文档</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2018年02月20日 13:59</li>
                                    <li class="visited_num fileSize">619KB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/unkonw.svg" alt="" title=""></dt>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/yagamil/article/details/50596068" target="_blank" strategy="BlogCommendFromBaidu_7">
                    <dd>
                        <h2 style="margin-bottom: 0px;">scrapy 中文教程</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_yagamil.jpg" alt="yagamil" title="yagamil"></li>
                            <li class="user_name">yagamil</li>
                            <li class="time">2016年01月27日 18:26</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2693</span></li>
                        </ul><div class="summary">
                            原文：

http://www.rcdisk.com/index.php/group/topic/id-194


要参考官方的网站 ：
首先，大家可以在命令中运行 scrapy，这样可以看清楚 sc...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/BennyShi1998/article/details/79090136" target="_blank" strategy="BlogCommendFromBaidu_8">
                    <dd>
                        <h2>Scrapy入门———Scrapy1.6官方教程学习笔记</h2>
                        <div class="summary">
                            
如果已经安装好了Scrapy，就可以开始下面的教程了。如果没有，可以看我的博文《安装Scrapy》进行安装后，再回来看哦！接下来，我们将爬
取&nbsp;quotes.toscrape.com中的名人名言，作为本...                        </div>

                        <ul>
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_bennyshi1998.gif" alt="BennyShi1998" title="BennyShi1998"></li>
                            <li class="user_name">BennyShi1998</li>
                            <li class="time">2018年01月17日 22:18</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>331</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics downloadElement" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a class="clearfix" href="https://download.csdn.net/download/u013177568/8233315" target="_blank" strategy="BlogCommendFromBaidu_9">
                    <dd class="floatL">
                        <div class="summary">
                            <h2>scrapy中文文档</h2>
                            <div class="summary">
                                <ul>
                                    <li class="time">2014年12月07日 17:20</li>
                                    <li class="visited_num fileSize">1.51MB</li>
                                    <li class="download_btn">下载</li>
                                </ul>
                            </div>
                        </div>
                    </dd>
                    <dt class="floatR"><img class="maxwidth" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/rar.svg" alt="" title=""></dt>
                </a>
            </dl>
                                                                <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/jueyings/article/details/60968526" target="_blank" strategy="BlogCommendFromBaidu_10">
                    <dd>
                        <h2 style="margin-bottom: 0px;">10、scrapy1.3.0 中文教程</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_jueyings.jpg" alt="jueyings" title="jueyings"></li>
                            <li class="user_name">jueyings</li>
                            <li class="time">2017年03月09日 20:58</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>627</span></li>
                        </ul><div class="summary">
                            创建项目　　在开始爬取之前，您必须创建一个新的Scrapy项目。 进入您打算存储代码的目录中，运行下列命令: 
　　scrapy startproject tutorial　　该命令将会创建包含下列内...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl id="yd_a_d_feed_12" class="yd_a_d_feed_cla" style="height:124px;"><div id="BAIDU_SSP__wrapper_u3203594_0"><iframe id="iframeu3203594_0" name="iframeu3203594_0" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/tcxm.html" vspace="0" hspace="0" marginwidth="0" marginheight="0" scrolling="no" style="border:0;vertical-align:bottom;margin:0;width:920px;height:117px" allowtransparency="true" width="920" height="117" frameborder="0" align="center,center"></iframe></div><script type="text/javascript">var cpro_id = "u3203594";</script><script type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/c.js"></script></dl><dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/zjiang1994/article/details/52779537" target="_blank" strategy="BlogCommendFromBaidu_11">
                    <dd>
                        <h2 style="margin-bottom: 0px;">scrapy爬虫框架入门实例</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_zjiang1994.jpg" alt="zjiang1994" title="zjiang1994"></li>
                            <li class="user_name">zjiang1994</li>
                            <li class="time">2016年10月10日 21:22</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>33204</span></li>
                        </ul><div class="summary">
                            scrapy爬虫框架入门实例关于如何安装scrapy框架，可以参考这篇文章 
scrapy安装方法 
初识scrapy框架，写个简单的例子帮助理解。强调一下，这里使用的是Python3.6例子的目标就...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/elesos/article/details/71194918" target="_blank" strategy="BlogCommendFromBaidu_12">
                    <dd>
                        <h2 style="margin-bottom: 0px;">Scrapy爬虫入门系列2 示例教程</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_elesos.jpg" alt="elesos" title="elesos"></li>
                            <li class="user_name">elesos</li>
                            <li class="time">2017年05月05日 12:44</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>699</span></li>
                        </ul><div class="summary">
                            本来想爬下http://www.alexa.com/topsites/countries/CN&nbsp;总排名的，但是收费了




只爬了50条数据:



response.xpath(...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/u011054333/article/details/70165401" target="_blank" strategy="BlogCommendFromBaidu_13">
                    <dd>
                        <h2 style="margin-bottom: 0px;">scrapy 快速入门</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_u011054333.jpg" alt="u011054333" title="u011054333"></li>
                            <li class="user_name">u011054333</li>
                            <li class="time">2017年04月14日 01:18</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>4253</span></li>
                        </ul><div class="summary">
                            
安装ScrapyScrapy是一个高级的Python爬虫框架，它不仅包含了爬虫的特性，还可以方便的将爬虫数据保存到csv、json等文件中。首先
我们安装Scrapy。pip install scrap...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/wubaobao1993/article/details/79108282" target="_blank" strategy="BlogCommendFromBaidu_14">
                    <dd>
                        <h2>Python初识——Scrapy抓取二次元小姐姐图片</h2>
                        <div class="summary">
                            写在前面
最近在学习Python这门语言，禀着实践是最好的学习方法的原则，上来就迫不及待的学习了Scrapy框架，并结合网上的例子进行了实验，不得不说感觉到了Python和Scrapy的强大之处，同...                        </div>

                        <ul>
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_wubaobao1993.jpg" alt="wubaobao1993" title="wubaobao1993"></li>
                            <li class="user_name">wubaobao1993</li>
                            <li class="time">2018年01月19日 20:33</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>185</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                                    <dl id="yd_a_d_feed_18" class="yd_a_d_feed_cla" style="height:124px;"><iframe style="width: 100%; height: 90px; border: 0px none;" scrolling="no"></iframe></dl><dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/wxg694175346/article/details/19642329" target="_blank" strategy="BlogCommendFromBaidu_15">
                    <dd>
                        <h2>[Python]网络爬虫（12）：爬虫框架Scrapy的第一个爬虫示例入门教程</h2>
                        <div class="summary">
                            爬虫框架Scrapy的第一个爬虫示例入门教程。
我们使用dmoz.org这个网站来作为小抓抓一展身手的对象。

首先先要回答一个问题。

问：把网站装进爬虫里，总共分几步？

答案很简单，四步：

 ...                        </div>

                        <ul>
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_wxg694175346.jpg" alt="wxg694175346" title="wxg694175346"></li>
                            <li class="user_name">wxg694175346</li>
                            <li class="time">2014年02月23日 20:52</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>188271</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/Inke88/article/details/60145707" target="_blank" strategy="BlogCommendFromBaidu_16">
                    <dd>
                        <h2 style="margin-bottom: 0px;">Scrapy爬虫入门教程一 安装和基本使用</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_inke88.jpg" alt="Inke88" title="Inke88"></li>
                            <li class="user_name">Inke88</li>
                            <li class="time">2017年03月03日 19:44</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>3326</span></li>
                        </ul><div class="summary">
                            Scrapy爬虫入门教程 安装和基本使用                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/HappyHuirong/article/details/26614249" target="_blank" strategy="BlogCommendFromBaidu_17">
                    <dd>
                        <h2 style="margin-bottom: 0px;">抓取scrapy中文文档(我的第一个爬虫)</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_happyhuirong.gif" alt="HappyHuirong" title="HappyHuirong"></li>
                            <li class="user_name">HappyHuirong</li>
                            <li class="time">2014年05月22日 19:31</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>2919</span></li>
                        </ul><div class="summary">
                            1.新建scrapy项目&nbsp;
sc                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/jly58fgjk/article/details/51591461" target="_blank" strategy="BlogCommendFromBaidu_18">
                    <dd>
                        <h2 style="margin-bottom: 0px;">scrapy爬虫框架学习入门教程及实例</h2>
                        <ul class="floatR">
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_jly58fgjk.gif" alt="jly58fgjk" title="jly58fgjk"></li>
                            <li class="user_name">jly58fgjk</li>
                            <li class="time">2016年06月05日 22:06</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>1830</span></li>
                        </ul><div class="summary">
                            Scrapy是一个基于Twisted，纯Python实现的爬虫框架，用户只需要定制开发几个模块就可以轻松的实现一个爬虫，用来抓取网页内容以及各种图片，非常之方便～

Scrapy 使用 Twisted...                        </div>

                        
                    </dd>
                </a>
            </dl>
                                                    <dl class="clearfix csdn-tracking-statistics recommend_article recommend_article_out" data-mod="popu_614" data-poputype="feed" data-feed-show="false" data-dsm="post">
                <a href="http://blog.csdn.net/qq_30242609/article/details/52810840" target="_blank" strategy="BlogCommendFromBaidu_19">
                    <dd>
                        <h2>Scrapy定向爬虫教程(一)——创建运行项目和基本介绍</h2>
                        <div class="summary">
                            
前言目前网上的Scrapy中文教程比较少，而且大多教程使用的Scrapy版本较老，比如说这个Scrapy 0.25 
文档，如其名，上古时期的翻译文档；再比如极客学院的视频教程使用的是1.0.x版本，跟...                        </div>

                        <ul>
                            <li class="avatar_img"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_qq_30242609.jpg" alt="qq_30242609" title="qq_30242609"></li>
                            <li class="user_name">qq_30242609</li>
                            <li class="time">2016年10月13日 22:34</li>
                            <li class="visited_num"><i class="icon iconfont icon-read"></i><span>11627</span></li>
                        </ul>
                    </dd>
                </a>
            </dl>
                        </div>
   <div id="ad_bot"></div>
    <div id="report_dialog"></div>
    <div id="pop_win" style="display:none ;position: absolute; z-index: 10000; border: 1px solid rgb(220, 220, 220); top: 222.5px; left: 630px; opacity: 1; background: none 0px 0px repeat scroll rgb(255, 255, 255);">
    </div>
    <div id="popup_mask"></div>
    <style>
        #popup_mask
        {
            position: absolute;
            width: 100%;
            height: 100%;
            background: #000;
            z-index: 9999;
            left: 0px;
            top: 0px;
            opacity: 0.3;
            filter: alpha(opacity=30);
            display: none;
        }

    </style>
    <div class="clear">
    </div>
</div>
            </div>
        </div>
        <div id="side" class="side">
    <div>
                    <div id="panel_Profile" class="panel">
    <ul class="panel_head"><span>个人资料</span></ul>
    <ul class="panel_body profile">
        <div class=" user_info">
    <dl class="inf_bar clearfix">
        <dt class="csdn-tracking-statistics tracking-click" data-mod="popu_381">
                <a href="http://blog.csdn.net/ygl_smile" target="_blank">
                    <img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/3_ygl_smile.jpg" class="avatar_pic">
        </a>
      </dt><dd>
            <h3 class="csdn-tracking-statistics tracking-click" data-mod="popu_380"><a href="http://blog.csdn.net/ygl_smile" target="_blank" id="uid">YGL_smile</a></h3>
            <div class="medals" title="">
                      </div>
                    </dd>
    </dl>
    <div class="inf_number_box clearfix">
        <dl title="12">
            <dt>原创</dt>
            <dd>12</dd>
        </dl>
        <dl title="4">
            <dt>粉丝</dt>
            <dd id="fan">4</dd>
        </dl>
        <dl title="9">
            <dt>喜欢</dt>
            <dd>9</dd>
        </dl>
        <dl title="5">
          <dt>评论</dt>
          <dd>5</dd>
        </dl>
    </div>

</div>
<div class="interflow clearfix">
      <div class="grade gradeAndbadge gradewidths">
      <span>等级：</span>
      <div>
        <a href="http://blog.csdn.net/home/help.html#level" title="2级,点击查看等级说明" target="_blank">
          <img class="grade-img" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/blog2.png" alt="2级,点击查看等级说明">
        </a>
      </div>
    </div>
    <div class="gradeAndbadge gradewidths" title="9320">
        <span>访问量：</span>
        <span class="num odd-overhidden">9320</span>
    </div>

    <div class="gradeAndbadge gradewidths" title="244">
      <span>积分：</span>
      <span class="num odd-overhidden">244</span>
    </div>
    <div class="gradeAndbadge gradewidths" title="309521">
        <span>排名：</span>
        <span class="num odd-overhidden">30万+</span>
    </div>

</div>
    </ul>
</div>

                            <div id="homepageArticles" class="panel csdn-tracking-statistics" data-pid="blog" data-mod="popu_4" style="height:250px;">
    <div id="cpro_u2734133" style="text-align:center;">
        <!-- 投放代码 -->
        <div id="_cc1t9gwlner"><em style="width:0px;height:0px;cursor:auto;"></em><iframe scrolling="no" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/s_002.html" width="250" height="250" frameborder="0"></iframe></div><script type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/bwlxosfoo.js"></script>
    </div>
</div>
                                <div class="panel" id="panel_Search">
    <ul class="panel_head"><span>文章搜索</span></ul>
    <ul class="panel_body">
        <form id="frmSearch" class="form_search csdn-tracking-statistics" data-pid="blog" target="_blank" data-mod="popu_306">
            <span><input id="inputSearch" class="blogsearch" title="请输入关键字" type="text"></span>
            <input id="btnSubmit" value="搜索" title="search in blog" type="button">
        </form>
    </ul>
</div>

<script type="text/javascript">
    $(function () {
        $("#btnSubmit").unbind("click");
        $("#btnSubmit").click(function () {
            search();
        });

        $("#frmSearch").submit(function () {
            search();
            return false;
        });
        function search() {
            if ($("#inputSearch").val() == "") {
                alert("请录入搜索关键词！");
                return false;
            }
            var url = CFG.SO_URL + "?q=" + encodeURIComponent($("#inputSearch").val())+'&t=blog&u='+username;
            // window.location.href = url;
            window.open(url)
        }
    });
</script>

                                
                                <div id="panel_Category" class="panel">
    <ul class="panel_head"><span>文章分类</span></ul>
    <ul class="panel_body">
                        <li>
            <a href="http://blog.csdn.net/ygl_smile/article/category/6348461" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">
                android-技术            </a>
            <span>(10)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/category/6756855" onclick="_gaq.push(['_trackEvent','function', 'onclick', 'blog_articles_wenzhangfenlei']); ">
                scrapy            </a>
            <span>(4)</span>
        </li>
                    </ul>
</div>

                                <div id="panel_Archive" class="panel">
    <ul class="panel_head"><span>文章存档</span></ul>
    <ul class="panel_body">
        <div id="archive_list">
                        <!--归档统计-->
            <li>
               <a href="http://blog.csdn.net/ygl_smile/article/month/2017/08">2017年8月</a>
               <span>(2)</span>
            </li>
                        <!--归档统计-->
            <li>
               <a href="http://blog.csdn.net/ygl_smile/article/month/2017/06">2017年6月</a>
               <span>(2)</span>
            </li>
                        <!--归档统计-->
            <li>
               <a href="http://blog.csdn.net/ygl_smile/article/month/2017/02">2017年2月</a>
               <span>(4)</span>
            </li>
                        <!--归档统计-->
            <li>
               <a href="http://blog.csdn.net/ygl_smile/article/month/2016/09">2016年9月</a>
               <span>(2)</span>
            </li>
                        <!--归档统计-->
            <li>
               <a href="http://blog.csdn.net/ygl_smile/article/month/2016/08">2016年8月</a>
               <span>(4)</span>
            </li>
                    </div>
    </ul>
</div>

                                <div id="hotarticls" class="panel csdn-tracking-statistics" data-pid="blog" data-mod="popu_340">
    <ul class="panel_head"><span>阅读排行</span></ul>
    <ul class="panel_body itemlist">
                        <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/58137421" title="Scrapy 1.3.2 - 基础教程" target="_blank">
                Scrapy 1.3.2 - 基础教程            </a>
            <span>(3421)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52241286" title="Android 内存泄漏" target="_blank">
                Android 内存泄漏            </a>
            <span>(1403)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52132224" title="录制手机屏幕并转为gif" target="_blank">
                录制手机屏幕并转为gif            </a>
            <span>(625)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/58246286" title="Scrapy 1.3.2 - Spider的全面认识" target="_blank">
                Scrapy 1.3.2 - Spider的全面认识            </a>
            <span>(543)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/56958775" title="Scrapy 1.3.2 - 安装" target="_blank">
                Scrapy 1.3.2 - 安装            </a>
            <span>(445)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/77413298" title="RecyclerView 的回收和复用" target="_blank">
                RecyclerView 的回收和复用            </a>
            <span>(426)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52458383" title="换个姿势聊聊自定义 View" target="_blank">
                换个姿势聊聊自定义 View            </a>
            <span>(407)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/72903961" title="编译FFmpeg在Android上使用" target="_blank">
                编译FFmpeg在Android上使用            </a>
            <span>(346)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/56928887" title="Scrapy 1.3.2 - 初始" target="_blank">
                Scrapy 1.3.2 - 初始            </a>
            <span>(345)</span>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52094120" title="高级控件 RecyclerView 总结" target="_blank">
                高级控件 RecyclerView 总结            </a>
            <span>(319)</span>
        </li>
                    </ul>
</div>

                                <div id="newcomments" class="panel">
    <ul class="panel_head"><span>最新评论</span></ul>
    <ul class="panel_body itemlist">
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52241286#comments">Android 内存泄漏</a>
            <p style="margin:0px;"><a href="http://my.csdn.net/YGL_smile" class="user_name">YGL_smile</a>:
                [reply]SEU_Calvin[/reply]
大神抬举啦，谢谢支持~~            </p>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52241286#comments">Android 内存泄漏</a>
            <p style="margin:0px;"><a href="http://my.csdn.net/YGL_smile" class="user_name">YGL_smile</a>:
                [reply]wdong_love_cl[/reply]
谢谢支持~~            </p>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52241286#comments">Android 内存泄漏</a>
            <p style="margin:0px;"><a href="http://my.csdn.net/wdong_love_cl" class="user_name">warmor</a>:
                顶一下，很不错的讲解！            </p>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52241286#comments">Android 内存泄漏</a>
            <p style="margin:0px;"><a href="http://my.csdn.net/SEU_Calvin" class="user_name">SEU_Calvin</a>:
                学习了            </p>
        </li>
                <li>
            <a href="http://blog.csdn.net/ygl_smile/article/details/52241286#comments">Android 内存泄漏</a>
            <p style="margin:0px;"><a href="http://my.csdn.net/SEU_Calvin" class="user_name">SEU_Calvin</a>:
                不错不错，很全面很清晰            </p>
        </li>
            </ul>
</div>

                            <div id="nav_show_top_stop" class="clearfix" style="z-index: 1000; width: 300px; position: fixed; top: 2px;">
                          <div id="cpro_u3031286" class="csdn-tracking-statistics" data-pid="blog" data-view="true" data-mod="ad_popu_189" data-mtp="63" data-order="40" data-con="ad_content_1259" style="text-align:center;background-color:#fff;">
                   <!-- 投放代码 -->
                   <div id="_28w649lupib"><abbr class="vgiipegkavgsk" style="display:none;"></abbr><iframe scrolling="no" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/s_003.html" width="250" height="250" frameborder="0"></iframe></div><script type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/bwocoflyv.js"></script>
               </div>
                        <div class="persion_article"><div class="right_box footer_box csdn-tracking-statistics" data-mod="popu_475" data-dsm="post">        <h3 class="feed_new_tit"><span class="line"></span><span class="txt">联系我们</span></h3>        <div class="contact-box">        <div class="img-box"><img src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/csdn_cs_qr.png" alt="客服"></div>        <div class="contact-info">        <h4>请扫描二维码联系客服</h4>        <p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M2.167 2h11.666C14.478 2 15 2.576 15 3.286v9.428c0 .71-.522 1.286-1.167 1.286H2.167C1.522 14 1 13.424 1 12.714V3.286C1 2.576 1.522 2 2.167 2zm-.164 3v1L8 10l6-4V5L8 9 2.003 5z" fill="#B3B3B3" fill-rule="evenodd"></path></svg><a href="mailto:webmaster@csdn.net" target="_blank"><span class="txt">webmaster@csdn.net</span></a></p><p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.999 13.355a.603.603 0 0 1-.609.645H1.61a.603.603 0 0 1-.609-.645l.139-1.47c.021-.355.25-.845.51-1.088 0 0 3.107-2.827 3.343-2.909 0 0-.029-2.46 1.2-2.46h3.635c1.112 0 1.202 2.469 1.202 2.469l3.32 2.9c.26.243.489.733.51 1.088l.139 1.47zM7 10a1 1 0 0 0 0 2h2a1 1 0 0 0 0-2H7zm7.806-5.674c.105.135.191.384.19.554l-.003 2.811c0 .17-.133.26-.295.2l-2.462-.999a.478.478 0 0 1-.296-.416V5.445c0-2.07-7.878-2.225-7.878 0v1.21c0 .17-.135.352-.3.404L1.3 7.904c-.165.052-.3-.044-.3-.213V4.88c0-.17.086-.42.191-.554C1.191 4.326 2.131 2 8 2s6.807 2.326 6.807 2.326z" fill="#B3B3B3"></path></svg><span class="txt"> 400-660-0108</span></p>        <p><svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M14.496 10.35c-.301-1.705-1.565-2.822-1.565-2.822.18-1.548-.481-1.823-.481-1.823C12.31.915 8.089.998 8 1 7.91.998 3.689.915 3.55 5.705c0 0-.662.275-.481 1.823 0 0-1.264 1.117-1.565 2.822 0 0-.16 2.882 1.445.353 0 0 .36.96 1.022 1.823 0 0-1.183.392-1.083 1.412 0 0-.04 1.136 2.527 1.058 0 0 1.805-.137 2.347-.882h.476c.542.745 2.347.882 2.347.882 2.566.078 2.527-1.058 2.527-1.058.1-1.02-1.083-1.412-1.083-1.412a7.986 7.986 0 0 0 1.022-1.823c1.604 2.529 1.445-.353 1.445-.353z" fill="#B3B3B3" fill-rule="evenodd"></path></svg><a href="http://wpa.qq.com/msgrd?v=3&amp;uin=2431299880&amp;site=qq&amp;menu=yes" target="_blank"><span class="txt">QQ客服</span></a>        <svg width="16" height="16" xmlns="http://www.w3.org/2000/svg"><path d="M7.325 13.965a6.5 6.5 0 1 1 7.175-6.4C14.467 11.677 11.346 15 7.5 15c-.514 0-1.015-.06-1.498-.172.488-.178.922-.48 1.323-.863zM4 7.5a4 4 0 1 0 8 0 .5.5 0 1 0-1 0 3 3 0 1 1-6 0 .5.5 0 0 0-1 0z" fill="#B3B3B3" fill-rule="evenodd"></path></svg><a href="http://bbs.csdn.net/forums/Service" target="_blank"><span class="txt">客服论坛</span></a>        </p>        </div></div>        <div class="bg-gray">        <div class="feed_copyright">        <p><a class="right-dotte" href="http://www.csdn.net/company/about.html" target="_blank">关于</a><a href="http://www.csdn.net/company/recruit.html" target="_blank" class="right-dotte">招聘</a><a href="http://www.csdn.net/company/marketing.html" target="_blank" class="right-dotte">广告服务</a>        <a href="http://zn.baidu.com/" target="_blank" class="footer_baidu">        <svg width="13" height="14" xmlns="http://www.w3.org/2000/svg"><path d="M8.392 7.013c1.014 1.454 2.753 2.8 2.753 2.8s1.303 1.017.47 2.98c-.833 1.962-3.876.942-3.876.942s-1.122-.36-2.424-.072c-1.303.291-2.426.181-2.426.181s-1.523.037-1.957-1.888c-.434-1.927 1.52-2.982 1.666-3.161.145-.183 1.159-.873 1.81-1.963.653-1.09 2.608-1.962 3.984.181zm1.23 5.706V9.346H8.64v2.534h-.937s-.3-.044-.356-.285V9.33l-.925.015v2.518s.042.627.925.855h2.277zm-3.685.013V7.951l-.896-.014v1.295H3.987s-1.054.086-1.422 1.28c-.129.798.114 1.266.156 1.368.043.099.383.682 1.238.852h1.978zm-2.433-1.45c-.087-.286.013-.613.057-.741.042-.128.228-.427.61-.54h.855v1.948h-.797s-.555-.029-.725-.668zm6.877-8.775c-.143.909-.865 2.108-1.99 1.962-1.121-.144-1.375-1.16-1.267-2.179C7.214 1.458 8.21.18 9.007.364c.796.18 1.52 1.235 1.374 2.143zm-4.09-.345c0 1.197-.68 2.164-1.52 2.164S3.25 3.36 3.25 2.162C3.25.967 3.932 0 4.77 0c.842 0 1.52.967 1.52 2.162zm4.854 2.09c1.34 0 1.701 1.309 1.701 1.743 0 .438.182 2.29-1.485 2.326-1.667.037-1.737-1.126-1.737-1.96 0-.874.179-2.11 1.52-2.11zm-7.93.581c.045.398.253 2.217-1.27 2.544C.427 7.704-.14 5.947.028 5.124c0 0 .18-1.78 1.412-1.89.98-.085 1.7.986 1.774 1.6z" fill="#999" fill-rule="evenodd"></path></svg>        <em> 百度</em></a></p>        <p class="fz12">©1999-2018 CSDN版权所有</p>        <p class="fz12"><a href="http://www.miibeian.gov.cn/" target="_blank" class="ml14">京ICP证09002463号</a></p>        </div>        <div class="allow-info-box">        <p><a href="http://www.hd315.gov.cn/beian/view.asp?bianhao=010202001032100010" target="_blank"><span>经营性网站备案信息</span></a></p>        <p><a href="http://www.cyberpolice.cn/" target="_blank"><span>网络110报警服务</span></a></p>        <p><a href="http://www.12377.cn/" target="_blank"><span>中国互联网举报中心</span></a></p>        <p><a href="http://www.bjjubao.org/" target="_blank"><span>北京互联网违法和不良信息举报中心</span></a></p>        </div>        </div>        </div></div>
        </div>
        <script type="text/javascript">
            var naviga_offsetTop;
            $(function(){
                resetleftTop();
                $(window).scroll(function(){
                    var scrollTop = $(document).scrollTop();

                    if (scrollTop > naviga_offsetTop) {
                        jQuery("#nav_show_top_stop").css({"position": "fixed"});
                        jQuery("#nav_show_top_stop").css({"top": "2px"});
                    } else {
                        jQuery("#nav_show_top_stop").css({"position": "static"});
                    }
                });
            });

            function resetleftTop(){
                naviga_offsetTop = $("#nav_show_top_stop").position().top;
            }

        </script>
    </div>
    <div class="clear"></div>
</div>
        <div class="clear"></div>
    </div>
</div>
<div class="left_fixed" style="right: 336.5px;">
  <div class="left_show_button">
    <span>
      <i class="icon iconfont icon-youjiantou"></i>
    </span>
</div>

    <ul class="left_menu" id="share_box">
        <li>
            <button class="left-fixed-btn btn-like csdn-tracking-statistics tracking-click" data-mod="popu_373" target="_self" title="点赞">
                <a href="javascript:void(0);" class="iconbox border_red" target="_blank"><i class="icon iconfont icon-dianzan"></i></a>
                <a class="txt" href="javascript:void(0);" target="_blank">1</a>
            </button>
        </li>
        <li>
            <button class="left-fixed-btn csdn-tracking-statistics tracking-click btn-collect" data-mod="popu_374" target="_self" title="收藏">
                <a href="javascript:void(0);" class="iconbox border_purple" target="_blank"><i class="icon iconfont icon-shoucang"></i></a>
            </button>
        </li>
        <li>
            <button class="left-fixed-btn btn-pinglun csdn-tracking-statistics tracking-click" data-mod="popu_544" title="评论">
            <a href="javascript:void(0);" class="iconbox border_purple" target="_blank"><i class="icon iconfont icon-pinglun"></i></a>
            </button>
        </li>
        <li class="bdsharebuttonbox csdn-tracking-statistics tracking-click bdshare-button-style0-16" data-mod="popu_172" data-bd-bind="1521006428276">
            <a class="bds_tsina outside left-fixed-btn" data-cmd="tsina" title="分享到新浪微博" target="_blank"></a>
            <span class="iconbox border_red2"><i class="icon iconfont icon-xinlang"></i></span>
        </li>
        <li class="bdsharebuttonbox csdn-tracking-statistics tracking-click bdshare-button-style0-16" data-mod="popu_172" data-bd-bind="1521006428276">
            <a class="bds_weixin outside left-fixed-btn" data-cmd="weixin" title="分享到微信" target="_blank"></a>
            <span class="iconbox border_green"><i class="icon iconfont icon-weixin"></i></span>
        </li>
        <li class="bdsharebuttonbox csdn-tracking-statistics tracking-click bdshare-button-style0-16" data-mod="popu_172" data-bd-bind="1521006428276">
            <a class="bds_qzone outside left-fixed-btn" data-cmd="qzone" title="分享到QQ空间" target="_blank"></a>
            <span class="iconbox border_blue"><i class="icon iconfont icon-QQ"></i></span>
        </li>
    </ul>
</div>
<div id="a52b5334d" style="width: 1px; height: 1px; display: none;">
    <script id="adJs52b5334" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/52b5334.js"></script>
    <script>document.getElementById("adJs52b5334").src = "https://ads.csdn.net/js/opt/52b5334.js?t=" + Math.random();</script>
</div>
<script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/appendMark.js" type="text/javascript"></script>
<script>window._bd_share_config = { "common": { "bdSnsKey": {}, 
"bdText": "", "bdMini": "1", "bdMiniList": false, "bdPic": "", 
"bdStyle": "0", "bdSize": "16" }, "share": {} }; with (document) 
0[(getElementsByTagName('head')[0] || 
body).appendChild(createElement('script')).src = 
'//csdnimg.cn/static/api/js/share.js?v=89860594'];</script>
<script type="text/javascript">
    $(function(){
        setTimeout(function(){
            $(".comment_body:contains('回复')").each(function(index,item){
                var u=$(this).text().split('：')[0].toString().replace("回复","")
                var thisComment=$(this);
                if(u)
                {
                    $.getJSON("https://passport.csdn.net/get/nick?callback=?", {users: u}, function(a) {
                        if(a!=null&&a.data!=null&&a.data.length>0)
                        {
                            nick=a.data[0].n;
                            if(u!=nick)
                            {
                                thisComment.text(thisComment.text().replace(u,nick));
                            }
                        }
                    });
                }
            });

        },200);

        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },5000);

        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },10000);

        setTimeout(function(){
            $(".math").each(function(index,value){$(this).find("span").last().css("color","#fff"); })
        },15000);

    });

    appendMark($('.recommend_list').children('a').find('dt'),$('.extension_other'));

    $(function () {
        $('pre.prettyprint code').each(function () {
            var lines = $(this).text().split('\n').length;
            var $numbering = $('<ul/>').addClass('pre-numbering').hide();
            $(this).addClass('has-numbering').parent().append($numbering);
            for (i = 1; i <= lines; i++) {
                $numbering.append($('<li/>').text(i));
            };
            $numbering.fadeIn(1700);
        });
    });
</script>
     <!--右下角弹窗广告-->
<div class="csdn-tracking-statistics" data-pid="blog" data-view="true" data-mod="ad_popu_72" data-mtp="62" data-order="40" data-con="ad_content_2072">
    <!--右下角弹窗广告-->
    <script id="popuLayer_js_q" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/popuLayer.js" defer="defer" type="text/javascript"></script>
    <div id="layerd" style="position: fixed; bottom: 0px; right: 0px; line-height: 0px; z-index: 1000; width: 250px; height: 278px; display: none;">
        <div class="J_close layer_close" style="background-color:#efefef;padding:0px;color:#333;font:12px/24px Helvetica,Tahoma,Arial,sans-serif;text-align:right;">
            关闭
        </div>
        <!-- 广告占位容器 -->
        <div id="cpro_u3026784">
            <!-- 列表页广告 -->
                    <!-- 详情页iteye广告-->
            <div id="_znzuam8qdpk"><iframe scrolling="no" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/s_004.html" width="250" height="250" frameborder="0"></iframe></div><script type="text/javascript" src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/idvveasfs.js"></script>
                 </div>
    </div>
    <script type="text/javascript">
        document.getElementById("popuLayer_js_q").onload = function () {
            var styObjd = styObj = {width: "250px", "height": parseInt(250) + 28};
            window.CSDN.Layer.PopuLayer("#layerd", {
                storageName: "layerd",
                styleObj: styObjd,
                total: 50,
                expoire: 1000 * 60
            });
        }
        $(function(){
          function resize_show(){
            var win_width = $(window).width();
            if(win_width>1600){
              $('#layerd').fadeIn()
            }else{
              $('#layerd').hide()
            }
          }
          resize_show();
          $(window).resize(resize_show);
        })
    </script>
</div>
     <div style="display:none;">
    <img src="" onerror='setTimeout(function(){if(!/(csdn.net|iteye.com|baiducontent.com|googleusercontent.com|360webcache.com|sogoucdn.com|bingj.com|baidu.com)$/.test(window.location.hostname)){window.location. href="\x68\x74\x74\x70\x73\x3a\x2f\x2f\x77\x77\x77\x2e\x63\x73\x64\x6e\x2e\x6e\x65\x74"}},3000);'>
</div>
<script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/publib_footer-1.js" type="text/javascript"></script><link rel="stylesheet" type="text/css" href="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/pub_footer_1.css">
<script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/iconfont.js" type="text/javascript"></script>

<script src="Scrapy%201.3.2%20-%20%E5%9F%BA%E7%A1%80%E6%95%99%E7%A8%8B%20-%20CSDN%E5%8D%9A%E5%AE%A2_files/goTop-v1.js"></script>
<script>
    GoTop({
        hasReport: true,
        reportFun: function() {
            $.createMask();
            var r = blog_address + "/common/report?id=" + fileName + 
"&t=" + 2;
            if (3 == 2) {
                var s = 
n.parentNode.parentNode.parentNode.getAttribute("floor");
                r += "&floor=" + s
            }
            var i = (document.documentElement.clientHeight - 400) / 2 + 
(document.documentElement.scrollTop || document.body.scrollTop),
                a = (document.documentElement.clientWidth - 400) / 2;

            $("#report_dialog").load(r).css({
                //top: i + "px",
                top: '20%',
                left: a
            }).show()
        }
    })
</script><div class="meau-gotop-box" style="right: 8px; bottom: 40px; z-index: 110;">    <a href="#" id="backtop" class="btn-meau" title="返回顶部" style="display: flex;">      <svg xmlns="http://www.w3.org/2000/svg" width="19" height="12">        <path d="M9.314 0l9.313 9.314-2.12 2.121-7.193-7.192-7.193 7.192L0 9.314z" fill="#FFF" fill-rule="evenodd"></path>      </svg>    </a>  <a href="#" id="reportContent" class="btn-meau" title="返回顶部">                            <svg xmlns="http://www.w3.org/2000/svg" width="18" height="22"><path d="M0 13.028V3.365L9 0l9 3.365v9.663C18 17.983 13.97 22 9 22s-9-4.017-9-8.972zm2-8.282v8.282c0 3.854 3.134 6.978 7 6.978s7-3.124 7-6.978V4.746L9 2.13 2 4.746zm6 10.276h2v1.993H8v-1.993zm0-8.973h2v6.979H8V6.049z" fill="#FFF" fill-rule="nonzero"></path></svg>                          </a></div>

<div style="position:fixed; top:0; left:0; overflow:hidden;"><input style="position:absolute; left:-300px;" id="focus_retriever" readonly="true" type="text"></div></body></html>